日期:2014-05-16 浏览次数:20596 次
动态网站的基础是数据库。Java通过JDBC调用常见数据库,这种方式屏蔽了各数据库访存的不同点。
安装MySql注意选择自定义模式安装,安装过程中选择开发者、多功能数据库、DSS/OLAP模式,注意字符集选择GBK,端口3306。这些参数在安装后可以通过config wizard进行更改。
JDBC属于JavaAPI的一部分,使用JDBC的接口和类可以而在任何关系数据库中以相同的方式执行SQL语句。其开发流程如下:
1. 首先需要到MySql的网站下载当前使用的数据库相应的驱动Jar包文件,本文以mySql为例。
2. 将该文件拷贝到WEB-INF/lib下。
3. 使用Class.forName加载之,Class.forName(“com.mysql.jdbc.Driver”);
4. 设置访问数据库的URL,其格式基本为JDBC+数据库IP+端口+数据库名。如String url=”jdbc:mysql://localhost:3306/dbtest”;
5. 通过Jdbc的DriverManager来创建数据库连接。Connection con = DriverManager.getConnection(URL,user,password);该方法返回Connection对象。
6. 使用Connection对象创建操作Sql语句的Statement对象。Statement stmt = con.createStatement();或者使用connection对象创建PreparedStatemen对象。
7. 通过statement对象执行Sql语句,该方法返回ResultSet或其它。
8. 通过ResultSet显示执行结果。
总体上使用PreparedStatement还是比较方便的,比使用Statement要更好些。
首先建立一个数据库连接类,它采用单例模式返回同一个Connection对象。
public class db { public staticConnection conn; public staticConnection getInstance() throws SQLException,ClassNotFoundException{ if(conn!=null){ return conn; }else { Class.forName("com.mysql.jdbc.Driver"); String URL="jdbc:mysql://localhost:3306/test"; returnDriverManager.getConnection(URL, "root", "root"); } } }
然后建立操作对象user和user的数据库操作类userDao,代码分别如下:
User.java
public classuser { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
userDao.java
public classuserDao { public void newUser(user u) throwsSQLException, ClassNotFoundException{ String sql = "insert intoguestbook (id,name) values (?,?)"; PreparedStatement stmt =db.getInstance().prepareStatement(sql); stmt.setInt(1, u.getId()); stmt.setString(2, u.getName()); int r = stmt.executeUpdate(); } }
在jsp页面中导入以上元素<%@page import="db.db,model.user,model.userDao" %>,并且使用jsp代码进行新建操作。
<% useru = new user(); Randomr = new Random(); u.setId(r.nextInt()); u.setName("gong"); userDaoud = new userDao(); ud.newUser(u); %>
修改操作使用preparedStatement的话,较为方便。
public intupdateUser(user o,user n) throws SQLException, ClassNotFoundException{ String sql = "update guestbookset name=? where id = ?"; PreparedStatement stmt =db.getInstance().prepareStatement(sql); stmt.setString(1, n.getName()); stmt.setInt(2, o.getId()); return stmt.executeUpdate(); }
public ListreadUsers() throws SQLException,ClassNotFoundException{ List<user> list = newArrayList<user>(); String sql = "select *from guestbook"; Statement stmt = db.getInstance().createStatement(); ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ user t = newuser(); t.setId(rs.getInt("id")); t.setName(rs.getString("name&quo