jdbc连接数据库
1、开发环境准备
JDK 1.8.0_111
Eclipse Neon
Tomcat 7
Sql server2008
2、所需jar包
sqljdbc4-4.0.jar
3、代码
数据库操作公共类 DataBaseUtil.java
package com.mozi.dbutil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 数据库连接工具类 */ public class DataBaseUtil { /** * 获取数据库连接 * @return Connection对象 */ public static Connection getConnection(){ Connection conn = null; try { // 加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 数据库连接url String url = "jdbc:sqlserver://192.168.3.120:1433;databaseName=AnzhenTest"; // 获取数据库连接 conn = DriverManager.getConnection(url, "sa", "sinopacs"); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭数据库连接 * @param conn Connection对象 */ public static void closeConnection(Connection conn){ // 判断conn是否为空 if(conn != null){ try { conn.close(); // 关闭数据库连接 } catch (SQLException e) { e.printStackTrace(); } } } }
package com.mozi.entity; public class WebUser { private String name; private String trueName; private String pass; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTrueName() { return trueName; } public void setTrueName(String tureName) { this.trueName = tureName; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } @Override public String toString() { return "WebUser [Name=" + name + ", TureName=" + trueName + ", Pass=" + pass + "]"; } }
package com.mozi.dao; import java.util.List; import com.mozi.entity.*; public interface IWebUserDao { /**根据用户名称模糊查询用户信息*/ public List<WebUser> findUserByName(String username); /** 添加用户*/ public void insertUser(WebUser user); /** 根据ID删除用户*/ public void deleteUser(String id); /** 根据ID更新用户*/ public void updateUser(WebUser user); }
package com.mozi.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.mozi.dao.IWebUserDao; import com.mozi.dbutil.DataBaseUtil; import com.mozi.entity.WebUser; public class WebUserDaoJdbc implements IWebUserDao { @Override public List<WebUser> findUserByName(String username) { List<WebUser> result = null; // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 根据指定用户名查询用户信息 String sql = "select * from WebUsers where Name like ?"; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, "%"+ username+"%"); // 执行查询获取结果集 ResultSet rs = ps.executeQuery(); // 判断结果集是否有效 while(rs.next()){ if(result==null) { result = new ArrayList<WebUser>(); } WebUser user =new WebUser(); user.setName(rs.getString(1)); user.setTrueName(rs.getString(2)); user.setPass(rs.getString(3)); result.add(user); } // 释放此 ResultSet 对象的数据库和 JDBC 资源 rs.close(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } return result; } @Override public void insertUser(WebUser user) { // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 插入用户注册信息的SQL语句 String sql = "insert into WebUsers(Name,TrueName,Pass) values(?,?,?)"; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 对SQL语句的占位符参数进行动态赋值 ps.setString(1, user.getName()); ps.setString(2, user.getTrueName()); ps.setString(3, user.getPass()); // 执行更新操作 ps.executeUpdate(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (Exception e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } } @Override public void deleteUser(String id) { // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 插入用户注册信息的SQL语句 String sql = "delete from WebUsers where Name =? "; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 对SQL语句的占位符参数进行动态赋值 ps.setString(1, id); // 执行更新操作 ps.executeUpdate(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (Exception e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } } @Override public void updateUser(WebUser user) { // 获取数据库连接Connection对象 Connection conn = DataBaseUtil.getConnection(); // 插入用户注册信息的SQL语句 String sql = "update WebUsers set Name=?,TrueName=?,Pass=? where Name = ?"; try { // 获取PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 对SQL语句的占位符参数进行动态赋值 ps.setString(1, user.getName()); ps.setString(2, user.getTrueName()); ps.setString(3, user.getPass()); ps.setString(4, user.getName()); // 执行更新操作 ps.executeUpdate(); // 释放此 PreparedStatement 对象的数据库和 JDBC 资源 ps.close(); } catch (Exception e) { e.printStackTrace(); }finally{ // 关闭数据库连接 DataBaseUtil.closeConnection(conn); } } }
USE [Test] GO /****** Object: Table [dbo].[WebUsers] Script Date: 01/12/2017 10:35:27 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[WebUsers]( [Name] [nvarchar](20) NOT NULL, [TrueName] [nvarchar](20) NULL, [Pass] [nvarchar](20) NULL, [Dept] [nvarchar](100) NULL, [Comments] [nvarchar](30) NULL, [LastLoginHost] [nvarchar](30) NULL, [LastLoginDate] [datetime] NULL, [Privilege] [nvarchar](50) NULL, [Enable] [bit] NULL, [BeyondIPLimit] [bit] NULL, CONSTRAINT [PK_WebUsers] PRIMARY KEY CLUSTERED ( [Name] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO