通过JDBC规范来持久化实体域对象
来源:互联网 发布:防复制软件 编辑:程序博客网 时间:2024/06/06 04:34
一、用到的接口和类以及工具
接口和类
DriverManager :驱动管理器,用来加载连接数据库的驱动
Connection :数据库连接
Statement :负责执行SQL语句
PreparedStatement :负责执行SQL语句,具有预先编译部分语句的功能,可以防止SQL注入
ResultSet :执行SQL语句后返回的结果集
工具:
c3p0 :连接池 (c3p0-0.9.1.2.jar)
二、具体顺序
①加载Mysql的驱动
两种方式:<1>DriverManager.rdegisterDriver(new Driver());
<2>Class.forName(“com.mysql.jdbc.Driver”);
第一种方式会在DriverMannager中注册两个驱动,因为registerDriver()方法中还会再次实例化一个Driver,为了解决这个问题,用第二种方式,运用反射可以只创建一个驱动。
②获得连接
两种方式:
<1>直接获得Connection,每次要执行SQL语句时创建一个Connection,得到结果后,关闭Connection。
语句:dbUrl=”jdbc:mysql://localhost:3306/数据库名”;(可简写jdbc:mysql:///数据库名)
dbUser=”数据库管理账号”;
dbPwd=”密码”;
Connection con= DriverManager.getConnection(dbUrl,dbUser,dbPwd);
<2>连接池
连接池中维护了一定数量的Connection,可以从连接池中获得Connection,用 完后放回连接池,可以节省系统资源。
有两种连接池的工具(c3p0和dbcp),区别是c3p0有回收空闲连接的功能
c3p0用法:
配置c3p0的配置文件(xml和properties两种)
放在src目录下自动会加载名称为:c3p0-config.xml
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///day18</property>
<property name="user">root</property>
<property name="password">abc</property>
</default-config>
</c3p0-config>
获得Connection
ComboPooledDataBase database = new ComboPooledDataBase();
Connection con = database.getConnection();
Con.close();此时不是在物理上关闭连接,而已释放连接,将连接放回连接池。
③在Service层开启事务
Con.setAutoCommit(false);
④持久化对象
PreparedStatement pst = con.preparedStatement(“sql语句 ??”);//?代表参数
pst.set数据类型(“****”,“****”) //第一个*号代表参数位置,从1开始,第二个是参数
pst.execute();
⑤查询对象
PreparedStatement pst = con.preparedStatement(“sql语句 ??”);//?代表参数
pst.set数据类型(“****”,“****”) //第一个*号代表参数位置,从1开始,第二个*是参数
ResultSet resultset = pst.executeQuery();
While(resultset.hasNext()){
resultset.get数据类型;
}
⑥提交事务
con.commit();
⑦关闭资源
con.close();
- 通过JDBC规范来持久化实体域对象
- 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法
- 通过序列化和反序列化泛型数据实体集合来实现持久化数据对象的方法
- 创建持久化对象规范
- 使用JDBC对象持久化数据对象
- EJB 3.0持久化规范之实体类的要求
- EJB 3.0持久化规范之实体类的要求
- 注解:Hibernate通过实体类数据持久化
- hibernate持久化实现——实体对象生命周期
- 【第一章 Design】 1 Cayenne 持久化对象规范
- EntityManager和持久化实体
- 使用cPickle来序列化、持久化 python对象
- 通过JDBC来连接Hive
- Hibernate(三)---通过Session操纵持久化对象
- 通过Accessor来取得相关的实体
- jdbc查询数据库返回实体对象集合
- 使用Hibernate来实现持久对象
- 使用Hibernate来实现持久对象
- 监听网络变化及获取网络形式
- 第二节 Node微信本地开发环境搭建
- spark on hive
- 12 :网络基础之 网络配置
- java-servlet
- 通过JDBC规范来持久化实体域对象
- 第7章 手机端基础接口文档
- [十二]java作业
- 从实际项目中总结出的20条数据库操作优化经验
- 8内容管理模块 功能说明
- 【TensorFlow】tf.nn.max_pool实现池化操作
- C#基础-预处理指令
- Description Resource Path Location Type Java compiler level does not match the version of the instal
- 深度学习开源库tiny-dnn的使用(MNIST)