数据库连接六步走 数据库连接分几步

如何的连接数据库,在java中,连接数据库采用的是官方提供的JDBC技术作为java访问数据库的标准接口,不同的数据库可以利用不同的数据库驱动对数据库进行操作,例如利用mysql-connector-java-5.1.7-bin组件,可以对mysql进行操作。

使用JDBC连接数据库有六步操作:

1.加载驱动。首先要加载数据库驱动,可以到数据库厂商的官方网站上下载,之后放在工程里面,一般建立一个bin目录,将组件放在bin目录下面,然后就可以加载数据库驱动,常见的加载数据库驱动的方法是Class.forName(“驱动程序完全限定名”);将驱动类的完全限定名作为参数,如:

Class.forName(“com. mysql.jdbc.Driver”);

com.mysql.jdbc.Driver为mysql的完全限定名,数据库驱动加载一次即可完成整个数据可访问过程。

2.建立连接。之后建立与数据库的连接,例如:

String url ="jdbc:mysql://localhost:3306/blog?characterEncoding=GBK";

Connection conn =DriverManager.getConnection(url, "root","rootroot");

其中url为连接路径,localhost为连接本机,也可以写IP地址,3306为数据库连接的端口,blog为数据库的名字,里面包含若干的数据表,后面的connection为获取连接,root为数据库的用户名,rootroot为连接数据库的密码。

3生成sql语句。

生成sql语句,包括增删改查,其实所有的sal语句都为拼出来的字符串,还可以传参数,例如:

String sql = "insert into test values(4,'tom',21)" ;//插入数据

String sql="update test set tname='sally',tage=20 wheretid=2";//修改数据

4.执行sql语句

Statement stmt =conn.createStatement();

int rows =stmt.executeUpdate(sql);// 可以执行insert,update,delete语句,返回执行的数据库表的行数

其中增删改操作用的是executeupdate.若是查询操作则应该使用executeQuery(sql).切返回值是一个集合,要用相应的类产生的对象接受。

5.处理执行的结果

就是对4中的rows进行处理,也就是判断,

if (rows > 0){

System.out.println("成功");

}else {

System.out.println("失败");

}

6.关闭数据库的连接,

stmt.close();

conn.close();

数据库使用完毕后要关闭与数据库的连接,释放资源。

如下两例:

(1).数据库的增删改操作:

public static void main1(String[] args){

// 1.确定驱动程序,并且加载驱动程序

// com.mysql.jdbc.Driver

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (Exception e) {

// 异常处理

e.printStackTrace();// 把错误信息输出到控制台

}

// System.out.println("数据库驱动加装成功");

try {

// 2.建立与数据库的连接

String url ="jdbc:mysql://localhost:3306/blog?characterEncoding=GBK";

Connection conn = DriverManager.getConnection(url,"root",

"rootroot");

// 3.生成sql语句

//String sql = "insert into test values (4,'tom',21)";

//String sql="update test set tname='sally',tage=20 wheretid=2";

String sql="delete from test where tid=1";

Statement stmt = conn.createStatement();

// 4.执行sql语句

int rows = stmt.executeUpdate(sql);// 可以执行insert,update,delete语句,返回执行的数据库表的行数

// 5.处理执行的结果

if (rows > 0) {

System.out.println("成功");

} else {

System.out.println("失败");

}

// 6.关闭与数据库的连接

stmt.close();

conn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

(2).数据库的查询操作:

public static voidmain(String[] args) {

//1.加载驱动

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (Exception e) {

// 异常处理

e.printStackTrace();// 把错误信息输出到控制台

}

try {

//2.建立连接

String url ="jdbc:mysql://localhost:3306/blog?characterEncoding=GBK";

Connection conn = DriverManager.getConnection(url,"root",

"rootroot");

String sql="select * fromtest";

Statement stmt=conn.createStatement();

ResultSet rs= stmt.executeQuery(sql);//执行查询语句,select

while(rs.next())

{

int id=rs.getInt("tid");

String tname=rs.getString("tname");

int tage=rs.getInt("tage");

System.out.println("id:"+id+",name:"+tname+",tage:"+tage);

}

rs.close();

stmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

在实际项目中,这些操作只需要写在一个类中作为父类,用时子类继承父类的内容,可以减少代码的编写量,并且在事物处理中,一个事物只需建立一次连接就可以了,不需要重复连接和关闭,并且在父类中,重写executeUpdate(Stringsql,Object…args)和executeQuery(String sql,Object…args),这样在使用时,就直接可以传参数,减少了很多的代码,以下将重写的代码写出:

//修改,更新,增加

public int executeUpdate(String sql,Object...args)

{

Connection conn=null;

PreparedStatement pst=null;

try {

conn=this.getConnection();

pst=conn.prepareStatement(sql);

if(args!=null)

数据库连接六步走 数据库连接分几步

{

for (int i = 0; i < args.length; i++) {

pst.setObject(i+1, args[i]);

}

}

introws=pst.executeUpdate();

return rows;

} catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally

{

this.close(pst);

//this.close(conn);

}

return -1;

}

public static interface RowMapper

{

public Object rowMapper(ResultSetrs)throws SQLException;

}

//查找

public ListexecuteQuery(Stringsql,RowMappermapper,Object...args){

Listlist=newArrayList();Connection conn=null;

PreparedStatement pst=null;

ResultSet rs=null;

try {

conn=this.getConnection();

pst=conn.prepareStatement(sql);

if(args!=null)

{

for (int i = 0; i < args.length; i++) {

pst.setObject(i+1, args[i]);

}

}

rs=pst.executeQuery();

while(rs.next())

{

Object result=mapper.rowMapper(rs);

list.add(result);

}

} catch(SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally

{

this.close(rs);

this.close(pst);

//this.close(conn);

}

return list;

}

理论只是理论,项目才使程序员成长,以上内容纯属个人手工编写,属于个人学习笔记,只为以后发展开方便之门,有不正确或不足的地方,望各路大侠批评指正。

  

爱华网本文地址 » http://www.413yy.cn/a/25101014/230836.html

更多阅读

转载 十六步教您创建YY教育频道及桌面分享认证 转载分享更多

原文地址:十六步教您创建YY教育频道及桌面分享认证作者:eSimple1.登录YY客户端,点击YY主窗口左下角的系统菜单,选择创建频道(图01)2.在弹出的公会管理网页的右侧可以看你当前帐号可以创建频道的数量,点击马上创建(图02)3.根据意愿输入频道名

家庭自酿葡萄酒六步走:看图解说葡萄酒的做法

酿葡萄酒注意:糖多点发酵较快,糖少些发酵相对较慢.葡萄皮上的白雾就是天然的酵母,没必要加酵母发酵,只要葡萄中无油无水天不是很热就不会导致葡萄汁变质,但不能穷刷猛洗把皮上的白雾洗光光了,成熟的葡萄农药应该洒得少些,农药粘

转载 倒立俯卧撑六步训练法 单手倒立俯卧撑

原文地址:倒立俯卧撑六步训练法作者:三只梅花鹿 怎么练好倒立俯卧撑?可分为以下六个步骤来训练。  准备好了吗?做好热身活动,活动好你的手腕和各个关节,现在开始!  一、俯卧撑:标准的俯卧撑。  标准的俯卧撑,见下图。为什么要从俯

声明:《数据库连接六步走 数据库连接分几步》为网友今日忘分享!如侵犯到您的合法权益请联系我们删除