从jdbc到hibernate再到spring

14 篇文章 0 订阅
6 篇文章 0 订阅

1.对数据库的操作方式:

1.传统jdbc编程的步骤:  statement来执行操作
第一步:  
   建个工程, 把 要操作的数据库的 驱动给 弄进来.  并且添加到 
   build path, (变成奶瓶 形状 )
第二步:
注册驱动
第三步:
获得连接,   Connection对象
第四步:
获得可以 发送sql语句的 statement对象
第五步:
执行sql语句,  并且解析结果集 
第六步:
释放资源
2.传统jdbc编程的步骤的发展: QueryRunner来执行操作
JDBC:
---->六步实现java程序对数据库的操作

---->为了简化六步,出现JDBCUtils,封装了连接的获取;

---->为了提高并发访问效率,出现连接池Druid/c3p0,可以直接从连接池获得Connection,
并且这个时候对Connection的进行了装饰,返回的Connection自带连接池引用,close()方法自动归还连接到连接池;

----->由于连接池技术的出现,它本身也封装了创建连接的步骤,所有我们可以利用这一点,
在JDBCUtils中加以利用,这样就有了:利用连接池,改写JDBCUtils类,使JDBCUtils更加强大;    

---->为了简化对结果集ResultSet的数据封装,出现了DBUtils,它直接对Connection /或者DataSource 操作;
DBUtils核心类QueryRunner,用于sql操作,ResultSetHandler(结果集处理器)用于对数据进行封装;
3.hibernate对数据库的操作: session来执行操作
//1.加载 .xml 核心配置文件
Configuration config = new Configuration().configure();

//2.创建工厂
SessionFactory factory = config.buildSessionFactory();

//3.打开session
Session session = factory.openSession();

//4.开启事务
session.beginTransaction();

//5.业务操作
session.save(c);

//6.提交事务
session.getTransaction().commit();

//7.释放资源
factory.close();

4.hibernate的发展:(利用HibernateUtils 简化session获取) session来执行操作
//1.获得连接
session = HibernateUtils.openSession();

//2.开启事务
transaction = session.beginTransaction();

//3.业务操作
session.save(c);

//4.提交事务
transaction.commit();

//5.释放资源
session.close();
5.hibernate中的查询方式:
QID : session.get(Customer.class, 1)
hql : session.createQuery("from Customer c inner join  fetch c.order");
sql : session.createSQLQuery("select * from t_customer")
QBC : session.createCriteria()
ogn : 对象图导航查询

6.Spring中的数据库操作:  jdbcTemeplate 来执行操作
//1.创建数据库连接池
DriverManagerDataSource dataSource = new DriverManagerDataSource();

//2.设置DataSource相关属性
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql:///springtest");
dataSource.setUsername("root");
dataSource.setPassword("123");

//3.创建一个jdbcTemeplate来完成操作
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);

//4.执行操作
String sql = "update t_user set name='张三' where id=1";
jdbcTemplate.execute(sql );

7.Spring中的数据库操作发展: jdbcTemeplate 来执行操作  (其中 AccountDaoImpl extends JdbcDaoSupport)
this.getJdbcTemplate().update(sql,money,inname);

解释:
/*这里AccountDaoImpl继承了JdbcDaoSupport,它里边本身有一个 属性 private JdbcTemplate jdbcTemplate;
还有一个方法  public final void setDataSource(DataSource dataSource)这个方法执行的结果是你
给它注入一个 dataSource ,它就给它的属性 jdbcTemplate赋值:
this.jdbcTemplate = createJdbcTemplate(dataSource);
然后你还可以通过 public final JdbcTemplate getJdbcTemplate() {
return this.jdbcTemplate;
}
获得 JdbcTemplate;*/


/*所以你要做的就是:
* 1.让你类的继承一个类: extends JdbcDaoSupport
* 2.在配置文件里给它的属性注入:<property name="dataSource" ref="comboPooledDataSource"></property>
* 3.你可以直接在你的类里获得template: this.getJdbcTemplate()
* */

8.spring用hibernate整合操作数据库: HibernateTemplate 来操作数据库 (其中 CustomerDaoImpl extends HibernateDaoSupport)
this.getHibernateTemplate().find("from Customer");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值