使用JDBC进行数据库的增删改查操作1.下载Microsoft SQL Server 2005 JDBC 驱动包jar文件 将jar文件引入工程中2.封装数据库链接的获取和关闭操作import java.sql.*;public class BaseDao { /** * 数据库驱动类的字符串,完整的包名加类名 在工程中查看添加的jar文件 能看到这个类 */ private static final String DRIVE = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; /** * 数据库连接地址 * * DataBaseName=数据库名称 其它固定 */ private static final String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=bbs"; /** * 连接数据库的用户名 */ private static final String USER = "sa"; /** * 用户密码 */ private static final String PASSWORD = ""; /** * 获取连接 异常直接抛出 或者捕获后自定义异常信息再抛出 */ public static Connection getConnection() throws Exception { Class.forName(DRIVE); return DriverManager.getConnection(URL, USER, PASSWORD); } /** * 关闭与数据库的连接 释放资源 */ public static void closeAll(ResultSet resultSet, PreparedStatement pst, Connection connection) throws Exception { if (resultSet != null) resultSet.close(); if (pst != null) pst.close(); if (connection != null) connection.close(); }}3.创建图书的实体类public class Book { /** * 数据库主键 */ private Long id; /** * 作者 */ private String author; /** * 书名 */ private String name; /** * 默认构造 * */ public Book() { } /** * 全字段构造 * @param id * @param author * @param name */ public Book(Long id, String author, String name) { this.id = id; this.author = author; this.name = name; } /** * 以下为读写属性的方法 * @return */ public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}4.创建与图书表交互的工具类import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;public class BookDao { /** * 添加新书 * * @param book 要添加入数据库的图书 作者 书名 必须给定 */ public void addBook(Book book) throws Exception { // 连接 Connection connection = null; // 执行语句 PreparedStatement pst = null; try { connection = BaseDao.getConnection(); // 构造执行语句 String sql = "insert into book values(" + book.getAuthor() + "," + book.getName() + ")"; pst = connection.prepareStatement(sql); pst.executeUpdate(); } catch (Exception e) { // 抛出异常 throw e; } finally { // 无论是否异常 均关闭数据库 BaseDao.closeAll(null, pst, connection); } } /** * 查询所有书籍列表 */ public List<Book> getBooks() throws Exception { // 用于存放查寻结果的集合 List<Book> books = new ArrayList<Book>(); // 连接 Connection connection = null; // 执行语句 PreparedStatement pst = null; // 查询结果 ResultSet resultSet = null; try { connection = BaseDao.getConnection(); // 构造查询语句 String sql = "select * from book"; pst = connection.prepareStatement(sql); resultSet = pst.executeQuery(); // 循环读取查询结果行 while (resultSet.next()) { // getXXX的参数为数据表列名 Book book = new Book(resultSet.getLong("id"), resultSet .getString("author"), resultSet.getString("name")); // 将封装好的图书对象存入集合 books.add(book); } } catch (Exception e) { // 抛出异常 throw e; } finally { // 无论是否异常 均关闭数据库 BaseDao.closeAll(resultSet, pst, connection); } // 返回查询结果 return books; }/***其它方法类似上面 只是语句不同*/}当然 以上只是简单的封装 初学者可以在理解以上代码的基础上 进行更高级的封装5.使用BookDao添加书籍和获取所有书籍列表import java.util.List;/** * 测试类 * @author Administrator * */public class Test { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { //创建工具类对象 BookDao dao = new BookDao(); //创建一本图书 Book book = new Book(null,"QQ:495691293","编程菜鸟"); //添加书籍到数据库 dao.addBook(book); //获取所有图书列表 List<Book> books = dao.getBooks(); //输出结果 for (Book b : books) { System.out.println(b.getId()+"\t"+b.getAuthor()+"\t"+b.getName()); } }}
1.在项目里建个文件夹取名叫lib 把sqljdbc.jar驱动放进去2.建个类些连接和关闭数据库的方法package com.svse.util;//连接/关闭数据的包名.import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;//连接public class DBConnect { public Connection getConnect() { Connection conn = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;databaseName=t114", "sa", "svse"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }//关闭 public void closeConnect(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } //测试连接,(可要可不要,自己检测的,) public static void main(String[] args) { System.out.println(new DBConnect().getConnect()); }}3.写方法的,import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.svse.entity.User;//这是我的实体包import com.svse.util.DBConnect;//我的工具包(连接/关闭数据库的)public class UserDao { private DBConnect db = new DBConnect(); private Connection conn; private PreparedStatement pstmt; private ResultSet rs; /* * 根据用户名进行查询,返回一个用户对象 如果返回的是null,表示用户名不存在; 如果能够查询到指定用户名的这个用户对象, * 就将数据库中的密码获取封装到用户对象然后返回 */ public User login(User user) { User newUser = null; String sql = "select * from users where ulogname = ?"; conn = db.getConnect(); try { pstmt = conn.prepareStatement(sql); pstmt.setString(1, user.getUlogname()); rs = pstmt.executeQuery(); if (rs.next()) { newUser = new User(); newUser.setUno(rs.getString("uno")); newUser.setUlogname(rs.getString("ulogname")); newUser.setUpwd(rs.getString("upwd")); } } catch (SQLException e) { e.printStackTrace(); } finally { db.closeConnect(conn); } return newUser; }}4.前台调用方法,