Java连接SQLserver数据库基操

package com.hnkjxy.service;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.hnkjxy.model.User;


public class UserManager {
	//数据库驱动程序
	public static final String DRIVER ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	//数据库连接URL
	public static final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=hrdb";
	//数据库登录用户名
	public static final String DBNAME ="数据库账号";
	//数据库登录密码
	public static final String DBPASS ="登录密码";
	
	private Connection conn = null;	
	private PreparedStatement pstat = null;
	private ResultSet rs = null;
	
	/*
	 * 创建数据库连接的方法
	 * @return
	 * @throws ClassNotFoundException
	 * @throwsSQLException
	 */
	public Connection getConn() throws ClassNotFoundException, SQLException {
		//1.加载驱动
		Class.forName(DRIVER);
		//2.链接数据库
		conn = DriverManager.getConnection(URL, DBNAME, DBPASS);
		return conn;
	}
	
	/*
	 * 释放资源
	 */
	public void closeAll() {
		//如果rs不为空。关闭rs
		if(rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		//如果pstat不为空。关闭pstat
		if(pstat != null) {
			try {
				pstat.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		//如果conn不为空。关闭conn
		if(conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	
	//新增用户的方法
	public int addUser(User user) throws Exception{
		//先判断插入的用户对象是否已存在
		try {
			User u = this.getUserByName(user.getUserName());
			if(u == null) {
				//可以插入数据
				conn = this.getConn();
				String sql = "insert into tbl_user(UserName,Password,Sex,Hobby,Province) values(?,?,?,?,?)";
				pstat = conn.prepareStatement(sql);
				pstat.setString(1,user.getUserName());
				pstat.setString(2,user.getUserPassword());
				pstat.setString(3,user.getSex());
				pstat.setString(4,user.getHobby());
				pstat.setString(5,user.getProvince());
				int result = pstat.executeUpdate();
				return result;
			}else {
				throw new Exception("编号为"+user.getUserName()+"的用户信息已存在,新增失败!");
			}
		}catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return -1;
		}finally {
			this.closeAll();
		}
		
	}
	
	//根据用户名进行查找的方法
	public User getUserByName (String userName) {
		try {
			conn = this.getConn();
			String sql = "select * from tbl_user where UserName = ?";
			pstat = conn.prepareStatement(sql);
			pstat.setString(1,userName);
			rs = pstat.executeQuery();
			//将rs包装成User
			User user = null;
			while(rs.next()) {
				user = new User();
				user.setUserName(rs.getString("UserName"));
				user.setUserPassword(rs.getString("Password"));
				user.setSex(rs.getString("Sex"));
				user.setHobby(rs.getString("Hobby"));
				user.setProvince(rs.getString("Province"));
			}
			return user;
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}finally {
			this.closeAll();
		}
	}
}
发布了17 篇原创文章 · 获赞 1 · 访问量 132

猜你喜欢

转载自blog.csdn.net/qq_43300003/article/details/93227831