栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC第二天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC第二天

一.增删改通用操作
@Test
	//增删改查的通用方法 自己写的测试
	public void test6() {
//      获取具体sql
//		String sql ="delete from customers where id=?";
//			try {
//				updateInfo(sql,20);
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
		String sql = "update `order` set order_name=?,order_id=? where order_id=?";
		try {
			updateInfo(sql,"CC",3,3);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	//传入要执行的sql语句(只设计增删改),查询的参数args与对应的sql中的字段一致 自己写的
	public void updateInfo(String sql,Object...args) throws Exception {
		
		Connection conn=null;
		PreparedStatement p1=null;
		try {
			//1.首先和之前一样先获得4个基本信息,也就是获得配置文件
			InputStream is = ClassLoader.getSystemClassLoader().getSystemResourceAsStream("jdbc.properties");
			Properties p = new Properties();
			p.load(is);
			String url=p.getProperty("url");
			String user = p.getProperty("user");
			String psw = p.getProperty("password");
			String Diver = p.getProperty("driverClass");
			//2.注册驱动
			Class.forName(Diver);
			//3.获取链接
			conn = DriverManager.getConnection(url, user, psw);
			//4.获取PreparedStatement 预准备编译
			p1 = conn.prepareStatement(sql);
			//接下来具体的增删改操作循环,此时你有多少个参数就执行多少次,所以是args.length
			for(int i =0 ;i

//1.首先和之前一样先获得4个基本信息,也就是获得配置文件

 

InputStream is = ClassLoader.getSystemClassLoader().getSystemResourceAsStream("jdbc.properties");
            Properties p = new Properties();
            p.load(is);
            String url=p.getProperty("url");
            String user = p.getProperty("user");
            String psw = p.getProperty("password");
            String Diver = p.getProperty("driverClass");

//2.注册驱动

Class.forName(Diver);

//3.获取链接

conn = DriverManager.getConnection(url, user, psw);

//4.获取PreparedStatement 预编译准备

p1 = conn.prepareStatement(sql);

//接下来具体的增删改操作循环,此时你有多少个参数就执行多少次,所以是args.length

for(int i =0 ;i
                //注意前面的参数是对应数据库中的哪个字段,而索引是从1开始的,所以是i+1,而后面的是java中的数组所以是i
                p1.setObject(i+1,args[i]);
            }

//执行
            p1.execute();

//最后关闭资源

finally {
            try {
                if(p1!=null)
                p1.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                if(conn!=null)
                    conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

二.查以及通用查
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Date;
import java.util.Properties;

import javax.management.Query;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import org.junit.Test;



public class TestQuery {
@Test
public void test()  {
	//查
	Connection conn=null;
	PreparedStatement ps= null;
	ResultSet resultSet=null;
	try {
		//1.获取4个基本信息
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
		Properties p = new Properties();
		p.load(is);
		String url = p.getProperty("url");
		String user = p.getProperty("user");
		String psw = p.getProperty("password");
		String Driver = p.getProperty("driverClass");
		//2.注册驱动
		Class.forName(Driver);
		//3.获取链接
		conn = DriverManager.getConnection(url, user, psw);
		//4.获取具体的sql执行语句
		String sql="select id,name,email,birth from customers where id=?";
		//5.获取预编译准备
		ps = conn.prepareStatement(sql);
		ps.setObject(1, 1);
		//执行,并返回结果集
		resultSet = ps.executeQuery();
		//处理结果集
		if(resultSet.next()) {
			//resultSet() 有个方法next():功能是
			//1.判断一下下一个位置有没有字符 有则返回true并指针下移,若返回false则不下移。
			//获取当前这条数据的各个字段值
			int id = resultSet.getInt(1);
			String name = resultSet.getString(2);
			String email = resultSet.getString(3);
			Date birth = resultSet.getDate(4);
			
			//方式一:比较low
//			System.out.println("id = "+id+",name = "+name + ",email = " + email 
//					+",birth = "+birth);
			
			//方式二:
//			Object [] data = new Object[] {id,name,email,birth};
			
			//方式三:将数据封装为一个对象(推荐,在代码1中看具体怎么包装)
			QueryBean b = new QueryBean(id,name,email,birth);
			System.out.println(b);
			
		}
   conn = DriverManager.getConnection(url, user, psw);
	} catch (Exception e) {
		e.printStackTrace();
	}finally {
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(ps!=null) {
			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(resultSet!=null) {
			try {
				resultSet.close();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
   
}
}

此外针对对数据封装在一个类中 该类由以下组成

代码1:

import java.sql.Date;


public class QueryBean {
   private int id;
   private String name;
   private String email;
   private Date birth;
public QueryBean() {
	super();
}
public QueryBean(int id, String name, String email, Date birth) {
	super();
	this.id = id;
	this.name = name;
	this.email = email;
	this.birth = birth;
}
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;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
public Date getBirth() {
	return birth;
}
public void setBirth(Date birth) {
	this.birth = birth;
}
@Override
public String toString() {
	return "QuetyBean [id=" + id + ", name=" + name + ", email=" + email + ", birth=" + birth + "]";
}

   
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292724.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号