java web笔记——JDBC
2016-07-17 11:32
411 查看
SUN公司为了简化、统一对数据库的操作,定义了一套java操作数据库的规范,称之为JDBC。
JDBC全称:Java Data Base Connectivity(java数据库连接),它主要由接口组成。
组成JDBC的两个包:java.sql javax.sql。开发JDBC需要以上两个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。
从数据库中读取数据:
1.导入数据驱动
2.在程序中加载数据驱动 DriverManager.registerDriver(Driver driver);
3.建立连接 Connection conn = DriverManager.getConnection(url,user,pass);
4.创建用于向数据库发送SQL的Statement对象,并发送sql
Statement st = conn.createStatement();
ResultSet rs = st.excuteQuery(sql);
5.从代表结果集的ResultSet中取出数据
6.断开与数据库的连接,并释放相关资源
注意:在实际开发中并不推荐采用DriverManager.registerDriver(Driver driver)方法注册驱动, 原因:1.查看Driver的源码可以看到,采用此方式会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。2.程序依赖于import的驱动api,脱离了驱动jar包,程序将无法编译,切换数据库将会变得麻烦。
推荐方式:Class.forName(“com.mysql.jdbc.Driver”);采用此方式不会导致驱动对象在内存中重复出现,并且程序仅需要一个字符串,不用依赖具体的驱动,更加灵活。
url用于标识数据库的位置,告诉JDBC连接哪个数据库,url写法为:jdbc:mysql:[ ]//localhost:3306/database?参数名:参数值
常用的数据库url写法:jdbc:oracle:thin:@localhost:1521:database
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=database
Mysql的url地址简写形式:jdbc:mysql:///database
常用属性:useUnicode=true&characterEncoding=UTF-8
Connction是数据库编程中最重要的一个对象,常用方法:createStatement();
prepareStatement(sql);创建向数据库发送预编译sql的PrepareStatement对象
prepareCall(sql);创建执行存储过程的callableStatement对象
setAutoCommit(boolean autoCommit);设置事务是否自动提交
commit();在连接上提交事务
rollback();在此连接上回滚事务
ResultSet封装执行结果时,采用类似于表格的方式,维护了一个指向表格数据行的游标,初始化的时候,游标在第一行之前,调用ResultSet.next()方法可以使游标指向具体的数据行,进行调用方法获取该行数据。
SQL类型 | Jdbc对应方法
bit(1)/bit(10) | getBoolean()/getBytes()
tinyint | getByte()
smallint | getShort()
int | getInt()
bigint | getLong()
char/vachar/longvachar| getString()
Text(clob) Blob | getClob()/getBlob()
date | getDate()(返回sql.Date)
time | getTime()(sql.Time)
timestamp | getTimestamp()(sql.Timestamp)
statement 和 prepareStatement区别
1.prepareStatement是statement的子类
2.prepareStatement可以防止SQL注入问题
3.prepareStatement会对sql语句进行预编译,减轻数据库服务器压力
JDBC全称:Java Data Base Connectivity(java数据库连接),它主要由接口组成。
组成JDBC的两个包:java.sql javax.sql。开发JDBC需要以上两个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。
从数据库中读取数据:
1.导入数据驱动
2.在程序中加载数据驱动 DriverManager.registerDriver(Driver driver);
3.建立连接 Connection conn = DriverManager.getConnection(url,user,pass);
4.创建用于向数据库发送SQL的Statement对象,并发送sql
Statement st = conn.createStatement();
ResultSet rs = st.excuteQuery(sql);
5.从代表结果集的ResultSet中取出数据
6.断开与数据库的连接,并释放相关资源
注意:在实际开发中并不推荐采用DriverManager.registerDriver(Driver driver)方法注册驱动, 原因:1.查看Driver的源码可以看到,采用此方式会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。2.程序依赖于import的驱动api,脱离了驱动jar包,程序将无法编译,切换数据库将会变得麻烦。
推荐方式:Class.forName(“com.mysql.jdbc.Driver”);采用此方式不会导致驱动对象在内存中重复出现,并且程序仅需要一个字符串,不用依赖具体的驱动,更加灵活。
url用于标识数据库的位置,告诉JDBC连接哪个数据库,url写法为:jdbc:mysql:[ ]//localhost:3306/database?参数名:参数值
常用的数据库url写法:jdbc:oracle:thin:@localhost:1521:database
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=database
Mysql的url地址简写形式:jdbc:mysql:///database
常用属性:useUnicode=true&characterEncoding=UTF-8
Connction是数据库编程中最重要的一个对象,常用方法:createStatement();
prepareStatement(sql);创建向数据库发送预编译sql的PrepareStatement对象
prepareCall(sql);创建执行存储过程的callableStatement对象
setAutoCommit(boolean autoCommit);设置事务是否自动提交
commit();在连接上提交事务
rollback();在此连接上回滚事务
ResultSet封装执行结果时,采用类似于表格的方式,维护了一个指向表格数据行的游标,初始化的时候,游标在第一行之前,调用ResultSet.next()方法可以使游标指向具体的数据行,进行调用方法获取该行数据。
SQL类型 | Jdbc对应方法
bit(1)/bit(10) | getBoolean()/getBytes()
tinyint | getByte()
smallint | getShort()
int | getInt()
bigint | getLong()
char/vachar/longvachar| getString()
Text(clob) Blob | getClob()/getBlob()
date | getDate()(返回sql.Date)
time | getTime()(sql.Time)
timestamp | getTimestamp()(sql.Timestamp)
statement 和 prepareStatement区别
1.prepareStatement是statement的子类
2.prepareStatement可以防止SQL注入问题
3.prepareStatement会对sql语句进行预编译,减轻数据库服务器压力
相关文章推荐
- jdbc中的Statement和PreparedStatement接口对象
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序