`
- 浏览:
138685 次
- 性别:
- 来自:
合肥
-
这时是数据库的表:
DROP DATABASE IF EXISTS `hibernate`;
CREATE DATABASE `hibernate` ;
USE `hibernate`;
CREATE TABLE `person` (
`id` int(32) NOT NULL DEFAULT '0',
`name` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
1.首先我们先做一个接口,现在先不管它,等下你就知道他有什么用啦
package com.dongguoh;
import java.sql.*;
public interface IStatementCallback {
public Object doInStatement(Statement stmt) throws RuntimeException,SQLException;
}
2.而这里是最关键的,就是建一个Jdbc的模板方法,把那些经常要做的try{} catch{}都写在一个类里
免得以后每次都还去写。这就成啦代码复用.
package com.dongguoh;
import java.sql.*;
public class JdbcTemplate {
public Object execute(IStatementCallback action) {
Connection conn = null;
Statement stmt = null;
Object result = null;
try {
conn=this.getConnection();
conn.setAutoCommit(false);
stmt=conn.createStatement();
result=action.doInStatement(stmt);
conn.commit();
conn.setAutoCommit(true);
} catch (SQLException e) {
transactionRollback(conn);
e.printStackTrace();
throw new RuntimeException(e);
}finally{
this.closeStatement(stmt);
this.closeConnection(conn);
}
return result;
}
private void transactionRollback(Connection conn){
if(conn!=null){
try {
conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private void closeStatement(Statement stmt){
if(stmt!=null){
try {
stmt.close();
stmt=null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private void closeConnection(Connection conn){
if(conn!=null){
try {
conn.close();
conn=null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private Connection getConnection() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1/Hibernate";
Connection conn=null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, "root", "dongguoh");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
下面是我们的测试方法:
package com.dongguoh;
import java.sql.*;
import junit.framework.TestCase;
public class TestTemplate extends TestCase {
public void testJdbcTemplate(){
JdbcTemplate jt=new JdbcTemplate();
int count=(Integer)jt.execute(new IStatementCallback(){
public Object doInStatement(Statement stmt) throws RuntimeException, SQLException {
String sql="INSERT INTO person VALUES(1,'dongguoh','123456')";
int result=stmt.executeUpdate(sql);
return new Integer(result);
}
});
System.out.println("Count: "+count);
jt.execute(new IStatementCallback(){
public Object doInStatement(Statement stmt) throws RuntimeException, SQLException {
String sql="SELECT name,password FROM person WHERE id=1";
ResultSet rs=null;
rs=stmt.executeQuery(sql);
if(rs.next()){
System.out.println(rs.getString("name"));
System.out.println(rs.getString("password"));
}
return new Integer(1);
}
});
}
}
测试结果:
Count: 1
dongguoh
123456
如果你要用 PreparedStatement 的话,想传参数的话,再写一个接口来实现,再在JdbcTemplate重载一个方法
如public Object execute(IPreparedStatementCallback action,,Object[] objArray)再多传一个你要传递的参数数组,
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
现在的数据层的开发,大多会使用...但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或JPA之类无法满足我的需求,所以我打算自己封装一套查数据库的工具类。 文章地址: ...
封装jdbc即是把对数据库的连接操作封装在一个类中, 外部使用无需在重新建立连接,只需写出要执行的sql语句,就可执行。 也无需关闭,所有的都封装在一个类中。
封装jdbc,用Map实现快速的数据库增删改例子,具体可以参考util包下的BaseDao
spring封装jdbc查询这是一个完整的范例!!!
Java反射封装jdbc方法,查询,修改,添加,删除,查询全部,为一个方法,SQL语句自己拼接,可常用,下载可终身受益
实现完全的对jdbc对象的封装,只需调用则可对数据库进行CRUD操作
通过XML保存JDBC相关配置(参考) 作者:13部王曦同学在学习J2EE的XML开发的小项目。 说明:做得越多,收获越多。 博文链接:https://java1573.iteye.com/blog/124704
jdbc封装(实现对实体的增删改查[分页]),辅助学习Hibernate 包含三个文件夹,分别是: code-access实现 是用access实现的,本意是access方便,就一个文件,方便部署。但access有好多不支持,就写成这样.主要是可参考Dao...
轻量级jdbc 封装类,适用于不使用mybatis hibernate等轻量级场合, 无需太多配置。
游戏服务器 数据库连接池 jdbc 简单封装
看到很多人不知道使用泛型,所有我利用方法泛型以及类泛型,封装了几个JDBC链接Oracle的方法,可以适用增删改查任意表以及任意返回值和任意个数查询条件。可以自己改成mysql或其他数据库
这个jdbc的jar包里面有四个类以及一个DataSource.properties配置文件。该文件中放的是四大参数。如果你下载了这个jar包,那么在你使用的时候,你需要自己创建一个DataSource.properties文件,你需要把这个DataSource...
NULL 博文链接:https://wa491o.iteye.com/blog/1149987
jdbc的封装类,便于在开发时候方便,实现了数据库的加载,连接,增、删、查、改。
很好,很强大,用一次,想一次,很好,很强大,用一次,想一次;下载一点不后悔
关于Java Web的Servlet+JDBC(封装)+JSP的登录(送给入门的你)
JDBC封装的工具类,将所有共同的代码提取过来,形成工具类
Oracle jdbc 单例 工具类 以及Oracle jar包 需要的话可以自己改成其他数据库