jdbc
2016-12-13 00:59
79 查看
连接数据库
配置MySQL数据库的驱动程序
下载 mysql-connector-java-5.1.39.zip,复制到jdk的所在处
若能输出Class名,则已配置好了
为什么调用Class.forName(),却没有newInstance();
Class.forName() 加载了指定类后,若类中有静态初始化器,JVM必然会执行该类的静态代码段,而JDBC的Driver类都是会有static代码块
DriverManager
getConnection(String url, String user ,String password) :通过连接地址链接数据库,同时输入用户名和密码
url: jdbc:mysql:// ip地址 : 端口号/ 数据库名称
jdbc协议:JDBC URL中的协议总是jdbc
子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如mysql
子名称:一种标识数据库的方法,必须遵循”//主机名 : 端口/子协议" 的标准URL命名 约定
Connection接口
执行数据库的更新操作
Statement接口,通过Connection接口的createStatement()方法实例化,来操作数据库
public static void main(String[] args)throws Exception{
ResultSet接口
接受所查询的记录,并显示内容,开发中要限制查询数量
Statement接口的executeQuery() 方法,返回一个ResultSet对象
ResultSet的所有数据都可以通过getString()方法获得
PreparedStatement接口
是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,是先在数据表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后在进行设置,即占住此位置等待用户设置
注意:开发中不建议使用Statement来操作数据库,而是使用PreparedStatement,因为Statement是完整的SQL语句
配置MySQL数据库的驱动程序
下载 mysql-connector-java-5.1.39.zip,复制到jdk的所在处
public class jdbc {
public static final String DRIVER="org.gjt.mm.mysql.Driver";
public static void main(String[] args){
try{
System.out.println(Class.forName(DRIVER)) ;
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
}
}
若能输出Class名,则已配置好了
为什么调用Class.forName(),却没有newInstance();
Class.forName() 加载了指定类后,若类中有静态初始化器,JVM必然会执行该类的静态代码段,而JDBC的Driver类都是会有static代码块
DriverManager
getConnection(String url, String user ,String password) :通过连接地址链接数据库,同时输入用户名和密码
url: jdbc:mysql:// ip地址 : 端口号/ 数据库名称
jdbc协议:JDBC URL中的协议总是jdbc
子协议:驱动程序名或数据库连接机制(这种机制可由一个或多个驱动程序支持)的名称,如mysql
子名称:一种标识数据库的方法,必须遵循”//主机名 : 端口/子协议" 的标准URL命名 约定
Connection接口
执行数据库的更新操作
Statement接口,通过Connection接口的createStatement()方法实例化,来操作数据库
public static final String DRIVER="org.gjt.mm.mysql.Driver";
public static final String URL="jdbc:mysql://localhost:3306/newsql";
public static final String USERNAME="root";
public static void main(String[] args)throws Exception{
Connection conn=null;
Statement statement=null;
String sql="insert into newtable(name) values('ccw')";
try{
Class.forName(DRIVER); //加载驱动
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
conn=DriverManager.getConnection(URL,USERNAME,USERNAME);
statement=conn.createStatement();
statement.executeUpdate(sql);
try{
statement.close();//先开后关闭,可以只关闭connection
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
ResultSet接口
接受所查询的记录,并显示内容,开发中要限制查询数量
Statement接口的executeQuery() 方法,返回一个ResultSet对象
ResultSet rSet=statement.executeQuery(sql);
while(rSet.next()){
int id=rSet.getInt("id"); //int id=rSet.getInt(1);
String name=rSet.getString("name"); //String name=rSet.getString(2);
String sex=rSet.getString("sex"); //....
System.out.println(id+name+sex);
}
ResultSet的所有数据都可以通过getString()方法获得
PreparedStatement接口
是Statement的子接口,属于预处理操作,与直接使用Statement不同的是,是先在数据表中准备好了一条SQL语句,但是此SQL语句的具体内容暂时不设置,而是之后在进行设置,即占住此位置等待用户设置
String sql="insert into newtable(name,sex) values(?,?)";
pStatement=conn.prepareStatement(sql); //实例化
pStatement.setString(1, name);
pStatement.setString(2, sex);
pStatement.executeUpdate();
注意:开发中不建议使用Statement来操作数据库,而是使用PreparedStatement,因为Statement是完整的SQL语句
相关文章推荐
- JDBC连接Oracle数据库常见问题及解决方法
- JDBC的LIKE书写规范
- javaJDBC(4)-事务、隔离级别
- 高性能jdbc封装工具 Apache Commons DbUtils 1.6(转载)
- 利用Sharding-JDBC实现分表
- JDBC简单的增删改查
- Sybase powerbuilder pb8--pb10中使用jdbc来做数据源的发布方法
- JDBC、Ibatis、Hibernate对比、以及优点缺点
- JDBC
- java系统学习(十六) --------JDBC及其应用
- 利用Sharding-JDBC实现分表
- java.lang.UnsupportedClassVersionError: com/itheima/jdbc/demo2/Demo02 : Unsupported major.minor vers
- JDBC 概述(二)
- JDBC连接数据库工具类及连接Access数据库示例
- jdbc连接各种数据库方式速查表
- error 2003 (hy000):can't connect to mysql server on 'localhost' (10061),com.mysql.jdbc.exceptions.jd
- 喜大普奔,微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库
- JDBC
- 一个JAVABEAN FOR JDBC
- java连sqlserver2005:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver