一、概念
Java DataBase Connectivity,是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成。通过这些类和接口, JDBC把SQL语句发送给不同类型的数据库进行处理并接收处理结果。
二、JDBC两大类
1.对Java开发人员而言是API,对数据库提供商而言是接口。
2."面向开发人员:作为API, JDBC为程序开发提供标准的接口
3.面向数据库厂商:作为接口i数据库厂直,标准方法来实现数据库连接与操作(数据库驱动程序)。
三、类型
1.类型一:JDBC-ODBC桥加ODBC驱动程序)
2.类型二(本地API和部分基于Java的驱动程序)
3.类型三(为数据库中间件实现的纯Java驱动程序)
4.类型四(本地协议纯Java驱动程序)
5.如果我们编写的程序只访问一种类型的数据库,那么最好选择类型4。如果程序需要同时访问多个类型的数据库,那么最好选择类型3。如果类型3和4都不适用于所用的数据库,才选择类型2,类型1通常不会考虑为部署级的驱动程序,一般只在开发或者测试中才会使用
四、有两种方法可以设置一个到数据库的连接
1.使用java.sql.DriverManager类的静态方法getConnection(,该方法带一个URL代表数据源的名称
2.使用JNDI (Java Naming and Directory Interface, Java命名服务)查找数据源的名称,.JNDI返回一个javax.sql.DataSource对象,然后使用DataSource类的getConnection()方法
五、DriverManag和DataSourcer区别
1.DataSource类是从数据库连接池中获取连接,而DriverManager类是直接建立与数据库的连接
2.在大型多层应用开发中,一般都是首选使用DataSource类来连接数据库
六、步骤
1.加载驱动程序
加载MySQL驱动程序.| Class.forName (con.mysql.jdbc.Driver)
2.创建一个连接对象口
Strinq url = “idbc:mysql://127.0.0.1: 3306/数据库名称?”?后可加useUnicode=true&characterEncoding=UTE8解决中文乱码
. con = DriverManager.getConnection(url, userName, password);
3.创建声明语句对象
StringBuilder sb = new StringBuilder();
sb.append("(’ “” ‘)")
sb. append("(’ “” ')")
Statement statement = null;
statementcon.createstatement ();
:statement.executeUpdate(sb.tostring());
4.创建声明语句对象
1)使用声明语句对象的executeUpdate(sal)方法完成增删改操作
2)使用声明语句对象的executeQuery(sal)方法获得结果集对象
5.执行该语句.
.execute( )
executeUpdate( )
executeQuery( )
6.关闭各种对象
七、驱动网站
mvnrepository.com
1.ResultSet executeQuery(String sql):执行一个返回单个结果集的SOL语句,只能该方法执行SELECT语句。
2.int executeUpdate(String sql):使用该方法执行不返回结果集的DDL和DML (Update.Insert、 Delete)语句。如果执行的是DML,则返回值为执行sOL语句影响的行数。1如果是执行DDL语句,则返回值为0.
3.boolean execute(String sql):该方法可以执行任何SOL语句。如果执行后第一个结果为 ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或者没有任何结果,则返回false。只有在不清楚sOL语句的类型时,才推荐使用execute(方法。如果该语句产生了结果集,则通过getResultSet()方法获得该结果集。
八、statement
1.存在sql注入风险
2.sql语句无法复用
3.预编译:Preparedstatement
1)避免sql注入风险
2)sql语句可以复用
4.CallableStatement调用存储讨程
4.日期类型:Dateutil.date2str(stu.getCreateTime (), “yyyy-MM-dd hh:mm:ss”)
对象关系数据库映射
ORM----object RelationShip Database Mapping
九、分页
第一个步骤:按照条件统计查询,满足查询条件的总条数,判断总条数是否为0,不为0,才开始具体数据的查询
第二个步骤:查询具体的数据
十、处理结果集
next( )
getXXX( )
十一、处理大数据
Clob大文本数据
Blob大二进制数据.
十二、分层思想(三层架构)
表现层
MVC
业务层
事物脚本(使用面向过程来组织业务逻辑)
领域模型(使用面向对象来组织业务逻辑)
持久层
ORM
行数据入口