jdbc封装代码
jdbc封装代码
package jdbcUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import jdbc.RowMap;
public class JdbcUtil {
	public static Connection getConnection(){
		Connection connection=null;
		//加载驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
			//2创建连接(主机名,端口号,用户名,密码)
			connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "123456");
		}
		 catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 return connection;
	}
	public static void close(Connection connection){
		try {
			if(connection!=null){
				connection.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static int executeUpdate(String sql,Object... params){
		int result=0;
		Connection connection=getConnection();
		PreparedStatement pstmt;
		try {
			pstmt = connection.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setObject(i+1, params[i]);
				}
			result=pstmt.executeUpdate();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			close(connection);
		}
		return result;
	}	
	public static <T>List<T> executeSelect(String sql,RowMap<T> rowMap,Object...params){
		List<T> result=new ArrayList<>();
		Connection connection=getConnection();
		try {
			PreparedStatement pstmt=connection.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setObject(i+1, params[i]);
				}
			}
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()){
				//将数据行 映射到对象中
				T t=rowMap.rowMapping(rs);
				result.add(t);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			close(connection);
		}
		return result;
	} 
}
JdbcUtil.java
package jdbcUtil;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import jdbc.RowMap;
public class JdbcUtil {
	public static Connection getConnection(){
		Connection connection=null;
		//加载驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
			//2创建连接(主机名,端口号,用户名,密码)
			connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "123456");
		}
		 catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 return connection;
	}
	public static void close(Connection connection){
		try {
			if(connection!=null){
				connection.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static int executeUpdate(String sql,Object... params){
		int result=0;
		Connection connection=getConnection();
		PreparedStatement pstmt;
		try {
			pstmt = connection.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setObject(i+1, params[i]);
				}
			result=pstmt.executeUpdate();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			close(connection);
		}
		return result;
	}	
	public static <T>List<T> executeSelect(String sql,RowMap<T> rowMap,Object...params){
		List<T> result=new ArrayList<>();
		Connection connection=getConnection();
		try {
			PreparedStatement pstmt=connection.prepareStatement(sql);
			if(params!=null){
				for(int i=0;i<params.length;i++){
					pstmt.setObject(i+1, params[i]);
				}
			}
			ResultSet rs=pstmt.executeQuery();
			while(rs.next()){
				//将数据行 映射到对象中
				T t=rowMap.rowMapping(rs);
				result.add(t);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			close(connection);
		}
		return result;
	}
}
jdbcBean.java
package jdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Scanner;import jdbcUtil.JdbcUtil;class jdbcBean {
	public static void main(String[] args) {
		List<Student> list=select();
		System.out.println(list);
		/*jdbcBean jdbcBean=new jdbcBean();
		jdbcBean.tset();*/
		/*delete();*/
		/*add();*/
	}
	public static int delete(){
		return JdbcUtil.executeUpdate("delete from student where sid=? and sname=?", 10,"¹þÊ¿Ææ");
	}
	public static int update(){
		return JdbcUtil.executeUpdate("update student set sname=?,age=?,sex=? where sid=?","mojie",2,"ÐÛ",1);
	}
	public static int add(){
		return JdbcUtil.executeUpdate("insert into student(sname,age,sex) values(?,?,?)", "ÍÛ¹þ",3,"ÐÛ");
	}
	 public static List select(){
		 return jdbcUtil.JdbcUtil.executeSelect("select * from student",new RowMap<Student>(){
			 @Override
			 public Student rowMapping(ResultSet rs){
				 Student student=new Student();
				try {
					student.setAge(rs.getInt("age"));
					student.setName(rs.getString("sname"));
					student.setSex(rs.getString("sex"));
					student.setSid(rs.getInt("sid"));
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				 return student;
			 }
		 }, null);
			/*Connection connection=JdbcUtil.getConnection();
			List<Student> list=new ArrayList<>();
			try {
				PreparedStatement pstmt=connection.prepareStatement("select * from student");
				ResultSet rs= pstmt.executeQuery();
				while (rs.next()) {
					Student student=new Student();
					student.setAge(rs.getInt("age"));
					student.setName(rs.getString("sname"));
					student.setSex(rs.getString("sex"));
					student.setSid(rs.getInt("sid"));
					list.add(student);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				JdbcUtil.close(connection);
			}
			return list;*/
	}
	 public void tset(){
		 HashMap<String,Student> sHashMap=new HashMap<>();
		 for(int i=0;i<4;i++){
			 System.out.println("qingshuru");
			 Scanner scanner=new Scanner(System.in);
			 Integer sid=scanner.nextInt();
			 String sname=scanner.next();
			 Integer age=scanner.nextInt();
			 String sex=scanner.next();
			 Student student=new Student(sname, age, sid, sex);
			 sHashMap.put("Student"+i, student);
		 }
		 for(int i=0;i<4;i++){
			 System.out.println(sHashMap.get("Student"+i));
		 }
	 }
}
RowMap.java
package jdbc;
import java.sql.ResultSet;
public interface RowMap<T> {
	public T rowMapping(ResultSet rs);
}
Student.java
package jdbc;
public class Student {
	private String name;
	private int age;
	private int sid;
	private String sex;
	public String getName() {
		return name;
	}
	public Student(String name, int age, int sid, String sex) {
		super();
		this.name = name;
		this.age = age;
		this.sid = sid;
		this.sex = sex;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
	public Student(String name, int age, String sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
}
jdbc封装代码的更多相关文章
- 优化JDBC封装
		可重用性较强的JDBC封装 以下为代码,注释中写了主要思想 主类 com.util.JDBCUtil.java package com.util; import java.lang.reflect.F ... 
- 七、Block 封装代码
		1.概念:封装代码块,调用的时候使用 2.声明 返回类型(^名字)(参数1,参数2..) = (参数类型 变量1,参数类型, 变量2){ }; int (^Sum)(int,int) = ^(int ... 
- [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码
		函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ... 
- python解析xml模块封装代码
		在python中解析xml文件的模块用法,以及对模块封装的方法.原文转自:http://www.jbxue.com/article/16586.html 有如下的xml文件:<?xml vers ... 
- python网页请求urllib2模块简单封装代码
		这篇文章主要分享一个python网页请求模块urllib2模块的简单封装代码. 原文转自:http://www.jbxue.com/article/16585.html 对python网页请求模块ur ... 
- <<海闻电子发票接口 ESB 封装 代码指示 文档>>
		<<海闻电子发票接口 ESB 封装 代码指示 文档>> isValid 是否有效标志 代码 中文 说明 true 成功 false 失败 code 海闻错误说明 代码 中文 ... 
- Ajax--json(Ajax调用返回json封装代码、格式及注意事项)
		Ajax调用json封装代码<dbda.php>: //Ajax调用返回JSON public function JsonQuery($sql,$type=1,$db="mydb ... 
- 完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络]
		完整java开发中JDBC连接数据库代码和步骤[申明:来源于网络] 地址:http://blog.csdn.net/qq_35101189/article/details/53729720?ref=m ... 
- Uiautomator ---(1) 封装代码
		http://www.cnblogs.com/by-dream/p/4996000.html 上面是别人的写法 我自己的写法: package qq.test; import android.con ... 
随机推荐
- 分享一个Unity3D小作品,源码地址已公布在文章开头!
			Update:回复量有点大,楼主工作期间可能无暇向童鞋们发送源码,为了不让童鞋们久等,现公布源码地址. 链接: http://pan.baidu.com/s/1sjpYW4d 密码: zhp9 请注 ... 
- 一起talk C栗子吧(第一百二十七回:C语言实例--查看main函数的參数)
			各位看官们,大家好,上一回中咱们说的是static关键字的样例,这一回咱们说的样例是:查看main函数的參数.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们.我们在第五十七回中介绍过mai ... 
- 51、自定义View基础和原理
			一.编写自己的自定义View最简单的自定义View,继承View通过覆盖View的onDraw方法来实现自主显示利用Canvas和paint来绘制显示元素(文字,几何图形等) <com.myvi ... 
- 【BZOJ4773】负环 倍增Floyd
			[BZOJ4773]负环 Description 在忘记考虑负环之后,黎瑟的算法又出错了.对于边带权的有向图 G = (V, E),请找出一个点数最小的环,使得 环上的边权和为负数.保证图中不包含重边 ... 
- Mac下安装apk(命令形式)
			1 连接上设备 2 卸载原有程序 3 进入adb程序目录/Applications/adt-bundle-mac-x86_64-20131030/sdk/platform-tools 4 键入命令 . ... 
- 相似性分析之Jaccard相似系数
			Jaccard, 又称为Jaccard相似系数(Jaccard similarity coefficient)用于比较有限样本集之间的相似性与差异性.Jaccard系数值越大,样本相似度越高 公式: ... 
- JAVA源码之JDK(一)——java.lang.Object
			想要深入学习JAVA,还需追本溯源,从源码学起.这是我目前的想法.如今JAVA各种开源框架涌出,很多JAVA程序员都只停留在如何熟练使用的层次.身为其中一员的我深感惭愧,所以要加快学习的脚步,开始研究 ... 
- 3 CActiveXUI的一个Bug
			如果主窗口直接用变量生成,则关闭窗口时会产生崩溃 如果用new的方式生成,则不会崩溃,所以给出一个临时的快速解决方案,即主窗口都用new生成,_tWinMain改为下面这样: i ... 
- python 三行代码实现快速排序
			python 三行代码实现快速排序 最近在看 python cookbook , 里面的例子很精彩,这里就帮过来,做个备忘录 主要利用了行数的递归调用和Python的切片特性,解释一下每行代码的含义: ... 
- JavaScript dotAll模式
			JavaScript正则表达式中点(.)是一个特殊字符,它可以匹配除了一下条件的任意字符. 四个字节的UTF-16字符 换行符(\n) 回车符(\r) 行分隔符 段分隔符 为了使点(.)可以匹配任意字 ... 
