标签:close ocp ace microsoft dvpn util type sbit taf
SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC。这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加载具体的驱动,就可以操作数据库。
如下图所示:
2.1 搭建实验环境
A. 启动mysql数据库,即开启mysql/bin/mysqld.exe。
B. 创建数据库,并创建所需的表。如下图(在创建数据库和表的时候请对其编码设置为utf-8编码否则后期容易出错):
2.2 创建一个web工程,并导入数据库驱动包。
2.3 编写javabean,即PO对象又叫持久化对象,此对象的成员属性与数据库的列一一对应,本例中数据库与userName和passWd两列,则PO对象中也应该有这两个成员属性。
UserPO.java
package po; public class UserPO { private String userName; private String passWd; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWd() { return passWd; } public void setPassWd(String passWd) { this.passWd = passWd; } }
解析: javabean对象中成员属性应该是private的,且必须要有get()和set()方法。
2.4 创建DAO包,专门用于操作数据(即与数据库互动,进行增删改差操作),一般有接口类和实现类。
package dao; import java.util.List; import po.UserPO; public interface UserPOI { public boolean addUser(UserPO user); public List<UserPO> gets(); }
package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import po.UserPO; public class userPOImpl implements UserPOI { public boolean addUser(UserPO user) { boolean flag=false; Connection conn=null; Statement stat=null; try { //加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //从驱动中获取数据库的链接 conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8", "root", ""); //创建条件语句对象,即创建数据库中写入sql语句的对象 stat= conn.createStatement(); //执行sql语句,并得到如果是增删改操作都是用executeUpdate()方法返回执行成功的记录的条数,如果是查操作得到ResultSet返回值 int res=stat.executeUpdate("insert into user values(‘"+user.getUserName()+"‘,‘"+user.getPassWd()+"‘) "); if(res!=0){ //如果res不等于0则说明sql语句执行成功。 flag=true; } } catch (Exception e) { e.printStackTrace(); }finally{ try{ if(conn!=null && !conn.isClosed()){ conn.close(); } if(stat!=null && stat.isClosed()){ stat.close(); } }catch(Exception e){ e.printStackTrace(); } } return flag; } public List<UserPO> gets() { List<UserPO> list=new ArrayList<UserPO>(); Connection conn=null; Statement stat=null; ResultSet res=null; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8", "root", ""); stat=conn.createStatement(); res=stat.executeQuery("select * from user"); while(res.next()){ //不能是if UserPO user=new UserPO(); //注意这里的new UserPO()的位置,不能放在外面new 否则list里只有一个对象 user.setUserName(res.getString("userName")); user.setPassWd(res.getString("passWd")); list.add(user); } } catch (Exception e) { e.printStackTrace(); }finally{ try{ if(conn!=null && !conn.isClosed()){ conn.close(); } if(stat!=null && stat.isClosed()){ stat.close(); } if(res!=null && res.isClosed()){ res.close(); } }catch(Exception e){ e.printStackTrace(); } } return list; } }
2.5 创建测试类进行测试。
package test; import java.util.List; import org.junit.Test; import dao.userPOImpl; import po.UserPO; public class UserTest { @Test public void UserPOTest(){ userPOImpl im=new userPOImpl(); UserPO user=new UserPO(); user.setUserName("张三"); user.setPassWd("123"); im.addUser(user); } @Test public void userPOget(){ userPOImpl im=new userPOImpl(); List<UserPO> list=im.gets(); for(int i=0;i<list.size();i++) System.out.println(list.get(i).getUserName()); } }
结果:
(十七)jdbc(Java Data Base Connectivity,java数据库连接)基础使用
标签:close ocp ace microsoft dvpn util type sbit taf
原文地址:http://www.cnblogs.com/shyroke/p/6511539.html