JDBC从入门到熟练(一)
  TEZNKK3IfmPf 2023年11月15日 52 0

//最简单的jdbc连接jdbc,记住5个步骤

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test1 {
	public static void main(String[] args) {
		String url="jdbc:sqlserver://localhost:1433;DatabaseName=News2";
		Connection con=null; //链接对象
		try {
			//1加载驱动类,实例化一下
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			con=DriverManager.getConnection(url, "sa", "sa");
			//2.获得连接对象
			if(con!=null){
				System.out.println("数据库链接成功!");
			}
		} catch (ClassNotFoundException e){
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				con.close();//关闭链接
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	
	}
}

在此基础上继续完善:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//数据库管理类做好了,可以直接链接+关闭语句对象+关闭链接对象;
public class DBManager {
	private static Connection con=null;
	private static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=News";
	private static String sql="insert userInfo values('admin','admin',getdate())";
	private static String user="sa";
	private static String pwd="sa";

	//1.公共方法是获得数据库链接对象
	public static Connection getConnection(){
		try {
			Class.forName(driver);//加,连
			con=DriverManager.getConnection(url,user,pwd);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return con;//非void都需要return
	}
	//关闭所有方法;有3个参数!,省代码了!!!
	public static void closeAll(ResultSet rs,Statement stmt,Connection con){
		try {
			if(rs!=null){
				rs.close();
			}
			if(stmt!=null){
				stmt.close();
			}
			if(con!=null){
				con.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}
import java.sql.Date;

//实体类:存储介质
public class UserInfo {
	private int id;
	private String username;
	private String pwd;
	private Date createtime;
	public UserInfo(int id, String username, String pwd, Date createtime) {
		super();
		this.id = id;
		this.username = username;
		this.pwd = pwd;
		this.createtime = createtime;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public Date getCreatetime() {
		return createtime;
	}
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}


}
import java.sql.*;
import java.sql.Date;
import java.util.*;
//对UserInfo表的数据库管理类
public class UserInfoDB {
	//0.声明对象;
	Connection con=null;
	Statement stmt=null; //语句对象
	PreparedStatement pstmt=null;
	int result=0; //受影响的行数
	ResultSet rs=null; //结果集对象

	//这个方法:对UserInfo表的增 删  改方法
	//sql:可以insert update delete
	public int updateUserInfo(String sql){
		try {
			con=DBManager.getConnection();//加连了!!!
			stmt=con.createStatement();//语句对象
			result=stmt.executeUpdate(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBManager.closeAll(null, stmt, con);
		}
		return result;
	}
	//ArrayList:是个可变类型的动态集合
	//针对预编译语句对象的公共方法;list:存放的是?参数的个数
	public int updateUserInfo(String sql,List list){
		try {
			con=DBManager.getConnection();//嘉联
			pstmt=con.prepareStatement(sql);//1.得对象
			//2.要赋值;
			for(int i=0;i<list.size();i++){
				pstmt.setObject(i+1,list.get(i));
			}
			result=pstmt.executeUpdate();//3.去执行		
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBManager.closeAll(null, pstmt, con);
		}
		return result;
	}
	//简单的查询
	public List<UserInfo> getUser(String sql){
		List<UserInfo>list=new ArrayList<UserInfo>();
		try {
			con=DBManager.getConnection();
			pstmt=con.prepareStatement(sql);
			rs=pstmt.executeQuery();
		
			while(rs.next()){
				int id=rs.getInt(1);
				String name=rs.getString(2);
				String pwd=rs.getString("pwd");
				Date date=rs.getDate(4);
			
				UserInfo user=new UserInfo(id,name,pwd,date);
				list.add(user);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			DBManager.closeAll(rs, pstmt, con);
		}
		return list;
	}
}

测试类

import java.sql.*;
import java.util.*;

public class TestPre {
	public static void main(String[] args) {
		//测试;
		UserInfoDB udb=new UserInfoDB();
		String sql="select * from userInfo";
		List<UserInfo>list=udb.getUser(sql);
		System.out.println("编号\t用户\t密码\t日期");
		for(UserInfo user:list){
			System.out.println(user.getId()+"\t"+user.getUsername()+
					"\t"+user.getPwd()+"\t"+user.getCreatetime());
		}
	
	}
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月13日   50   0   0 JDBCsqlmysql
  TEZNKK3IfmPf   2023年11月15日   53   0   0 JDBC
  TEZNKK3IfmPf   2023年11月13日   25   0   0 JDBCspring
  TEZNKK3IfmPf   2023年11月12日   22   0   0 JDBC数据库
  TEZNKK3IfmPf   2023年11月13日   27   0   0 JDBCspringCRUD
  TEZNKK3IfmPf   2023年11月14日   50   0   0 JDBC数据库
TEZNKK3IfmPf