您的位置:首页 > 编程语言 > Java开发

JavaWeb体系结构的理解-7.数据库应用

2012-10-13 17:48 309 查看
动态网站的基础是数据库。Java通过JDBC调用常见数据库,这种方式屏蔽了各数据库访存的不同点。

安装、配置MySql

安装MySql注意选择自定义模式安装,安装过程中选择开发者、多功能数据库、DSS/OLAP模式,注意字符集选择GBK,端口3306。这些参数在安装后可以通过config wizard进行更改。

JDBC的工作流程和使用步骤

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显示执行结果。

CURD操作

总体上使用PreparedStatement还是比较方便的,比使用Statement要更好些。

1. C

首先建立一个数据库连接类,它采用单例模式返回同一个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);
  %>


2. 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();
}


3. R

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"));
       list.add(t);
     }
     returnlist;
}


4. D

public intdeleteUser(user old) throws SQLException,ClassNotFoundException{
     String sql = "deletefrom guestbook where id = ?";
     PreparedStatement ps = db.getInstance().prepareStatement(sql);
     ps.setInt(1, old.getId());
     returnps.executeUpdate();
}


参考文献

1. JavaWeb体系结构的理解-1.基础
2. JavaWeb体系结构的理解-2.JSP语法
3. JavaWeb体系结构的理解-3.JSP内置对象
4. JavaWeb体系结构的理解-4.JavaBean技术
5.
JavaWeb体系结构的理解-5.Servlet与过滤器
6.
JavaWeb体系结构的理解-6.EL与JSTL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: