JSP简单访问数据库

 Java代码

public class DBHelper {

private String driverName;

private String url;

private String user;

private String password;

private Connection connection;

private String createTableSql;

private String dropTableSql;

public void getConnection() {

if (null == connection) {

try {

Class.forName(driverName);

connection = DriverManager.getConnection(url, user, password);

} catch (ClassNotFoundException | SQLException e) {

e.printStackTrace();

}

}

}

public void closeConnection() {

if (null != connection) {

try {

connection.close();

connection = null; //connection.close won‘t set the connection to be null

System.out.println("closed db connection.");

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public void createTable() {

getConnection();

Statement stmt = null;

try {

stmt = connection.createStatement();

stmt.execute(createTableSql);

System.out.println("Executed sql [" + createTableSql + "] success.");

} catch (SQLException e) {

e.printStackTrace();

}

closeConnection();

}

public void dropTable() {

getConnection();

Statement stmt = null;

try {

stmt = connection.createStatement();

stmt.execute(dropTableSql);

System.out.println("Executed sql [" + dropTableSql + "] success.");

} catch (SQLException e) {

e.printStackTrace();

}

closeConnection();

}

public String getDriverName() {

return driverName;

}

public void setDriverName(String driverName) {

this.driverName = driverName;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

this.url = url;

}

public String getUser() {

return user;

}

public void setUser(String user) {

this.user = user;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getCreateTableSql() {

return createTableSql;

}

public void setCreateTableSql(String createTableSql) {

this.createTableSql = createTableSql;

}

public String getDropTableSql() {

return dropTableSql;

}

public void setDropTableSql(String dropTableSql) {

this.dropTableSql = dropTableSql;

}

}

  Java代码

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Test connecting mysql db</title>

</head>

<body>

<jsp:useBean id="dbHelper" class="com.jesse.jsp.bean.DBHelper" />

<jsp:setProperty property="driverName" name="dbHelper" value="com.mysql.jdbc.Driver"/>

<jsp:setProperty property="url" name="dbHelper" value="jdbc:mysql://192.168.1.104:3306/db_jesse?useUnicode=true&characterEncoding=GBK"/>

<jsp:setProperty property="user" name="dbHelper" value="jesse"/>

<jsp:setProperty property="password" name="dbHelper" value="jesse"/>

<jsp:setProperty property="createTableSql" name="dbHelper" value="create table test_tbl(id int)"/>

<jsp:setProperty property="dropTableSql" name="dbHelper" value="drop table test_tbl"/>

<%!

private int id = 0;

%>

<%

System.out.println(this); //to check if the servlet is singleton

id++;

synchronized(com.jesse.jsp.bean.DBHelper.class) {

dbHelper.createTable();

System.out.println(id + " created the table.");

Thread.sleep(5000);

dbHelper.dropTable();

System.out.println(id + " dropped the table.");

}

%>

</body>

</html>

  Java代码

[email protected]

Executed sql [create table test_tbl(id int)] success.

closed db connection.

1 created the table.

[email protected]

Executed sql [drop table test_tbl] success.

closed db connection.

2 dropped the table.

Executed sql [create table test_tbl(id int)] success.

closed db connection.

2 created the table.

Executed sql [drop table test_tbl] success.

closed db connection.

2 dropped the table.

  Note:本意是要让log打印出来是哪个session在执行,看到结果...又长知识了 <%! %> 查了下,觉得这种说法有道理,暂不深究: <%%>是代码段,在由jsp转换成Servlet后 <%%>中的代码是放在serive方法中,相当于doGet()和doPost()方法 <%!%>是jsp声明,用来定义属性和方法的,在由jsp转换成Servlet后 <%!%>中的代码是放serive方法之外的.

时间: 2024-10-07 03:22:27

JSP简单访问数据库的相关文章

简单的JSP访问数据库

什么是JDBC 在java技术系列中,访问数据库的技术叫做JDBC,它提供了一系列的API,让用java语言编写的代码连接数据库,对数据库的数据进行添加.删除.修改和查询. JDBC如何连接数据库 1.通过数据库厂商驱动连接: 2.通过JDBC-ODBC桥连接(仅限在windows系统下). 使用厂商驱动进行数据库连接 1.确定使用的驱动程序类,将其下载导入到项目lib文件下,并且要将驱动程序构建到项目中: 2.确定连接的URL地址: 一个注册页面的数据库处理界面 1.创建一个注册页面 2.连接

Limbo: 简单访问远程数据库

简单高效的项目协作工具 Teambition自诞生以来,一直致力于用技术重塑人们的工作方式,希望为人们的工作方式带来最好的协作体验,除了 Teambition之外,我们还有日程管理工具 [Today],这一次,我们又有新的产品线 简聊 (Talk.ai)要上线了,正如它的slogan「简聊一下,轻松协作」所表达的,它是一款slack风格的,基于企业的简单聊天工具.虽说简单,但却是为效率和协作而生的企业IM工具,它继承了 Teambition企业级基因,打通了项目协作工具 Teambition,用

JSP简单实现统计网页访问次数

JSP简单实现统计网页访问次数 需求:统计网页的访问次数 核心思想:利用application对象,将访问次数的信息放入application对象中,每次访问就+1.这里利用了application对象每次只有当应用关闭才被销毁的特性. 核心代码如下: <% Object obj =application.getAttribute("counter"); if(obj==null){ application.setAttribute("counter", ne

5在JSP中使用数据库

1JDBC JDBC(Java DataBase Connection)是Java运行平台的核心类库中的一部分,提供了访问数据库的API,它由一些Java类和接口组成.在JSP中可以使用JDBC实现对数据库中表记录的查询.修改和删除等操作.使用JDBC的应用程序一旦和数据库建立连接,就可以使用JDBC提供的API操作数据库. 经常使用JDBC进行如下操作: 与一个数据库建立连接. 向已连接的数据库发送SQL语句. 处理SQL语句返回的结果. 连接数据库的常用方式: 应用程序为了能和数据库交互信息

springmvc框架的项目,如何在controller中使用dao访问数据库

在springmvc框架中,controller和其他的bean是被分别扫描的,原因是如果不这样配置,controller就会被扫描两次,从而导致事物等问题. 通常情况下,controller是不允许直接使用dao的,一个合理的设计就是在sevice中去调用dao. 但是如果有临时的需求需要在controller中访问数据库,那怎么办呢? 有两种方法. 方法1:在web.xml中配置,使spring对事物的控制设计请求的整个生命周期. <!--配置Spring的OpenSessionInView

JSP简单练习-一个简单的计数器

在JSP中,在"<%"和"%>"之间书写的程序代码成为java程序片. 一个JSP页面中可以有多个java程序片.要注意的是,在Java程序片中声明的变量在它们所在JSP页面的所用程序片及表达式中都有效.基于此,可以把一个较大的程序片分成几个小的程序片,还可在其中插入HTML语句,以便编写的程序代码更具有可读性. 在程序片中声明的变量只在页面有效,是局部变量,它在不同的客户访问同一个页面时,此变量是不能共享的.但如果是在"<%!"

JSP简单练习-JSP指令

一.page指令: 定义JSP页面的全局属性值时可使用page指令,一般把它放在页面的首部.如: <%@ page contentType="text/html; charset=gb2312" %> 注意:page指令中的contentType属性不能在同一个页面中被两次指定值. page指令的属性比较多,用方括号"[]"括起来的属性表示可选属性. 1.language: language定义页面使用的脚本语言,默认情况下值为java,因此在编写JSP

使用面向对象的方法访问数据库

使用面向对象的方法访问数据库new mysqli("服务器名称","用户名","密码","数据库名称"); 判断连接是否成功1.mysqli_connect_error()2.!mysqli_connect_error() or die("error!"); 执行SQL语句返回结果集对象mysqli_query()函数执行某个针对数据库的查询:执行select查询时,返回一个mysqli_result对象:

ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库

用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INCLUDE方法进行多表关联查询.我不太喜欢那样,还不如老老实实写做SQL语句. 所以ADO.NET 不能完成不用掉.那么怎么将EF和ADO.NET结合. 其实很简单,只要将EF的连接池返回成ADO.NET的SQLCONNECTION.然后就可以用ADO.NET的方式来写了. protected voi