概述:jdbc是oracle公司制定的一套规范(一套接口),驱动是jdbc的实现类,由数据库厂商提供.所以我们可以通过一套规范实现对不同的数据库操作(多态) jdbc的作用:连接数据库,发送sql语句,处理结果 curd操作:它代表创建(Create).更新(Update).读取(Retrieve)和删除(Delete)操作 jdbc操作步骤: 1.数据库和表 在这里,用exercise数据库下的student表. 2.创建一个项目 由于是在javase版本的ecplise下创建的,lib文件夹…
一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存:完全的面向对象编程,代码操作比较简单. (2)缺点:大量的数据条件下不适合使用hibernate:程序员对hibernate生成的sql语句不可控,如果对sql优化的条件比较高,这时候也不适合使用hibernate. 4.hibernate中称数据库中的表为持久化表,相对应的,建立的类称之为持久化类…
什么是AR(ActiveRecord) Active Record (活动记录,以下简称AR)提供了一个面向对象的接口, 用以访问数据库中的数据.一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列. 一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列要想使用AR 操作 首先应该有一个Model层 <?php/*** Created by PhpStorm.* User: jinlei* Da…
首先声明,本文只给出代码,并不是做教程用,如有不便之处,还请各位见谅. PreparedStatement相较于Statement,概括来说,共有三个优势: 1. 代码的可读性和易维护性:PreparedStatement不需要像Statement那样拼接sql语句,而是用?代替,再对其进行赋值,代码简洁易懂,一目了然. 2. 预编译及DB的缓存过程,使得PreparedStatement在效率上高于Statement. 3. 防止SQL注入(这个不太懂,先这样写着吧) 之前在使用Stateme…
jdbc连接mysql并执行简单的CRUD的步骤: 1.注册驱动(需要抛出/捕获异常) Class.forName("com.mysql.jdbc.Driver"); 2.建立连接需要抛出/捕获异常) connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "Danny2036"); 3.创建statement…
通过案例我们发现“获得连接”和“释放资源”两次代码将在之后的增删改查所有功能中都存在,开发中遇到此种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用. 1.使用properties配置文件 开发中获得连接的4个参数(驱动.URL.用户名.密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可. 文件要求如下: 1)文件位置:任意,建议在src下 2)文件名称:任意,扩展名为properties 3)文件内容:一行一组数据,格式是“key=value”.…
工具类 通过之前的案例回顾,不难发现,有很多的代码操作是重复的,比如“获取链接”和“释放资源”等,将来在增删改查中经常遇到,开发中遇到这种情况,将采用工具类的方法进行抽取,从而达到代码的重复利用. 此处使用V1版本,之后还有替他版本. 获取链接 /** * 获取连接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName("com.mysql.j…
测试类代码如下 package zcc.spring_jdbc.demo2; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.jdbc.core.Jdbc…
1.插入后用新id初始化被插入对象 <insert id="insertStudentCatchId"> insert into student (age,name,score) values (#{age},#{name},#{score}); <!-- #{}中写入的是Student类的属性名 --> <!-- 子标签 selectKey 用于获取新插入记录的主键值 --> <!-- 使用新插入记录的主键值初始化被插入的对象 -->…
单表的增加操作 前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作.首先是在user.xml文件中添加insert的方法.代码如下 <!-- 添加用户 --> <insertid="insertUser"parameterType="cn.itcast.mybatis.po.User"> insert into user(username,birthday,sex,address) <…