通过JDBC获取数据库连接

来源:互联网 发布:网络与系统攻击技术 编辑:程序博客网 时间:2024/04/30 22:20

获取数据库的连接,步骤:

在程序当中要操作数据库,第一步应该将对应数据库的驱动包拷贝到项目中


2.获取连接:

口诀:贾琏欲执事(贾琏是红楼梦中的人物,是王熙凤的丈夫,王熙凤很强势,因此。。。不过这个口诀跟Java没多大联系,纯属是为了方便记忆)


1).加载注册驱动(

Class.forName(“驱动类的全限定名”)

2).获取连接对象(

Connection conn = DriverManager.getConnection(String url, String name, String password);

3).创建语()句对象(执行静态sql(写死)的语句对象)

Statement st = conn.createStatement();

4).执()行sql语句(该方法可以执行DMLDDL语句),返回受影响的行数,若是DQL语句(操作更复杂一点),就用executeQuerey()方法

int ret = st.executeUpdate();

5).释()放资源(先开的后关)

st.close();

conn.close();


上代码:

使用JDBC连接数据库并创建一张表(没有处理异常)

@Testpublic 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连接数据库并创建一张表(处理异常)

@Testpublic 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();}



0 0