通过JDBC获取数据库连接
2016-09-20 16:00
471 查看
获取数据库的连接,步骤:
在程序当中要操作数据库,第一步应该将对应数据库的驱动包拷贝到项目中
2.获取连接:
口诀:贾琏欲执事(贾琏是红楼梦中的人物,是王熙凤的丈夫,王熙凤很强势,因此。。。不过这个口诀跟Java没多大联系,纯属是为了方便记忆)
1).加载注册驱动(贾)
Class.forName(“驱动类的全限定名”)
2).获取连接对象(琏)
Connection conn = DriverManager.getConnection(String url, String name, String password);
3).创建语(欲)句对象(执行静态sql(写死)的语句对象)
Statement st = conn.createStatement();
4).执(执)行sql语句(该方法可以执行DML和DDL语句),返回受影响的行数,若是DQL语句(操作更复杂一点),就用executeQuerey()方法
int ret = st.executeUpdate();
5).释(事)放资源(先开的后关)
st.close();
conn.close();
上代码:
使用JDBC连接数据库并创建一张表(没有处理异常)
@Test
public void testConnection() throws Exception {
String sql = "CREATE TABLE s_student (id BIGINT primary key AUTO_INCREMENT,name varchar(20),age int)";
//1.加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接
//Connection conn = DriverManager.getConnection(String url, String name, String password);
//url格式:jdbc:mysql://主机ip:端口号/数据库名 (端口号默认3306,可不写,若是在本地连接,可写成 jdbc:mysql:///数据库名
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/hcd", "root","");
//3.创建语句对象
Statement st = conn.createStatement();
//4.执行sql语句
st.executeUpdate(sql);
//5.释放资源(遵循先开后关原则)
st.close();
conn.close();
}
使用JDBC连接数据库并创建一张表(处理异常)
@Test
public void testGetConnectionHanlderException() {
//贾琏欲执事
String sql = "CREATE TABLE t_student (id BIGINT primary key auto_increment,name varchar(20),age int)";
Connection conn = null;
Statement st = null;
try {
//1.加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hcd", "root", "");
//3.创建sql语句对象
st = conn.createStatement();
//4.执行sql语句
st.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
//5.释放资源
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
从上一个例子中,我们可以看到,关闭资源的代码看着很繁琐,Java7中增添了一个方式去自动关闭资源,即在try后面加上一个圆括号(),我们只需将打开的资源放到圆括号中,代码执行完之后就会自动关闭资源。
不说了,继续上代码:
在程序当中要操作数据库,第一步应该将对应数据库的驱动包拷贝到项目中
2.获取连接:
口诀:贾琏欲执事(贾琏是红楼梦中的人物,是王熙凤的丈夫,王熙凤很强势,因此。。。不过这个口诀跟Java没多大联系,纯属是为了方便记忆)
1).加载注册驱动(贾)
Class.forName(“驱动类的全限定名”)
2).获取连接对象(琏)
Connection conn = DriverManager.getConnection(String url, String name, String password);
3).创建语(欲)句对象(执行静态sql(写死)的语句对象)
Statement st = conn.createStatement();
4).执(执)行sql语句(该方法可以执行DML和DDL语句),返回受影响的行数,若是DQL语句(操作更复杂一点),就用executeQuerey()方法
int ret = st.executeUpdate();
5).释(事)放资源(先开的后关)
st.close();
conn.close();
上代码:
使用JDBC连接数据库并创建一张表(没有处理异常)
@Test
public void testConnection() throws Exception {
String sql = "CREATE TABLE s_student (id BIGINT primary key AUTO_INCREMENT,name varchar(20),age int)";
//1.加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接
//Connection conn = DriverManager.getConnection(String url, String name, String password);
//url格式:jdbc:mysql://主机ip:端口号/数据库名 (端口号默认3306,可不写,若是在本地连接,可写成 jdbc:mysql:///数据库名
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/hcd", "root","");
//3.创建语句对象
Statement st = conn.createStatement();
//4.执行sql语句
st.executeUpdate(sql);
//5.释放资源(遵循先开后关原则)
st.close();
conn.close();
}
使用JDBC连接数据库并创建一张表(处理异常)
@Test
public void testGetConnectionHanlderException() {
//贾琏欲执事
String sql = "CREATE TABLE t_student (id BIGINT primary key auto_increment,name varchar(20),age int)";
Connection conn = null;
Statement st = null;
try {
//1.加载注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hcd", "root", "");
//3.创建sql语句对象
st = conn.createStatement();
//4.执行sql语句
st.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
}finally{
//5.释放资源
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
从上一个例子中,我们可以看到,关闭资源的代码看着很繁琐,Java7中增添了一个方式去自动关闭资源,即在try后面加上一个圆括号(),我们只需将打开的资源放到圆括号中,代码执行完之后就会自动关闭资源。
不说了,继续上代码:
@Test//Java7新特性 public void testConnectionHanlderExceptionByJava7() { String sql = "create table t_student (id bigint primary key auto_increment,name varchar(20),age int)"; try( Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/hcd", "root", ""); Statement state = conn.createStatement(); ) { state.executeUpdate(sql); } catch (Exception e) { e.printStackTrace(); }
相关文章推荐
- JDBC:通过 DriverManager 获取数据库连接
- 1.通过原始的Driver接口获取JDBC数据库连接Connection
- 2.通过原始的Driver接口通过读取Properties属性文件获取JDBC数据库连接Connection
- java通过JDBC_获取数据库连接
- java JDBC 通过物理连接数据库和通过获取数据库连接池进行链接
- JDBC:通过 Driver 接口获取数据库连接
- 1.通过原始的Driver接口获取JDBC数据库连接Connection
- 2.通过原始的Driver接口通过读取Properties属性文件获取JDBC数据库连接Connection
- JDBC实例--通过连接工具类DBUtil +配置文件来获取连接数据库,方便又快捷
- jdbc 通过rs.getString()获取数据库中的时间字段问题
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
- JSP通过JDBC连接各种数据库的连接方式总结。(MySql、Orcal、SqlServer、DB2等数据库)
- 重点:java后端直接连接数据库实现查询获取结果 jdbc
- jdbc获取对各种数据库的连接
- 通过JDBC连接取得数据库相关的元数据
- 通过JDBC获取数据库表元数据
- 一种通过jdbc获取数据库结构的方法
- java 获取jdbc连接,并操作数据库
- jdbc获取数据库连接
- JDBC与JNDI获取数据库连接对象注意事项