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

JAVAapi—数据库连接

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

JAVAapi—数据库连接

介绍:

JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。 有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。

JDBC核心接口与类JDBC核心类库包含在java.sql包中。

接口:
Connection:特定数据库的连接(会话)。在连接上下文中执行SQL语句并返回结果。
PreparedStatement:表示预编译的 SQL 语句的对象。
Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。
ResultSet :表示数据库结果集的数据表,通常通过执行查询数据库的语句生成 。
CallableStatement :用于执行 SQL 存储过程的接口 。
类:
DriverManager:负责管理JDBC驱动程序。使用JDBC驱动程序之前,必须先将驱动程序加载并注册后才可以使用,同时提供方法来建立与数据库的连接。
SQLException:有关数据库操作的异常。

加载驱动(只做一次):

1.打出SQLServerDriver,按快捷2.使用Class.forName加载驱动

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
建立连接(Connection):
String url = "jdbc:sqlserver://localhost:1433;databasename=数据库名称";
//注:SqlServer也可以更换成其他的 (如:MySQL等)
Connection con = DriverManager.getConnection(url, "sa", "sa123");
//注:(url, "sa", "sa123")  这里的是我的SqlServer的连接账号和密码
执行语句(preparedstatement):
PreparedStatement ps = con.prepareStatement("insert into student values(?,?,?)");
//注: ?代表占位符,一个占位符意味着需要一个变量来填充
 Scanner mys=new Scanner(System.in);
        System.out.println("请输入你的名字");
        String name=mys.next();
        System.out.println("请输入你的年龄");
        int age=mys.nextInt();
        //默认生日是当前时间
        Date brithday=new Date(System.currentTimeMillis());
 
       int n = ps.executeUpdate();// n就是数据库收到影响的行数
         // 怎么判断是否操作成功
            System.out.println(n>0?"成功":"失败");
            
关闭资源:
 
		if(con!=null&&!con.isClosed()) {
			con.close();
		}
		if(ps!=null) {
			ps.close();
		}

以上的执行语句 增删改查 中有许多代码都是重复的非常的麻烦,下面请看优化版本:

———————————————

首先建立一个包 come.util 在这个包中建立一个帮助类 DBHelper

//使用静态代码块加载驱动
        static {
		
		    try {
		    	Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		    } catch (ClassNotFoundException e) {
	    		e.printStackTrace();
    		}
    	}
//定义连接语句
    private static final String URL="jdbc:sqlserver://localhost:1433;databasename=api_284";
//获得连接
        public static Connection getCon() {
	    	try {
	        	return	DriverManager.getConnection(URL,"sa","123456");
	    	} catch (Exception e) {
			    e.printStackTrace();
		}
		return null;
	}
//关闭资源:连接con,执行对象ps,结果集rs  
    public static void close(Connection con,PreparedStatement ps,ResultSet rs) {
    		try {
	    		if (con!=null&&!con.isClosed()) {
	    			con.close();
	    		}
		    	if (ps!=null) {
		    		ps.close();  
		    	}
		    	if (rs!=null) {
		    		rs.close();
		    	}
		    } catch (Exception e) {
			    e.printStackTrace();
		}

首先建立一个包 come.dao 在这个包中建立一个dao类 以数据库中的表名开头(如:studedao)

//定义方法
    private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
//增
public int add(Student stu) {
		try {
			con = DBHelper.getCon();
			String sql = "insert into student values(?,?,?)";
			ps = con.prepareStatement(sql);
			ps.setString(1, stu.getName());
			ps.setInt(2, stu.getAge());
			ps.setDate(3, stu.getBirthday());
			return ps.executeUpdate();
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.close(con,ps,rs);
		}
		return 0;
	}
//删
public int delect(int id) {
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("delete from student where id=?");
			ps.setInt(1, id);
			return ps.executeUpdate();
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally {
			DBHelper.close(con, ps, rs);
		}
		return 0;
	}
//改
public int update(Student stu ) {
		try {
			con=DBHelper.getCon();
			String sql="update student set name=? where id=?";
			ps=con.prepareStatement(sql);
			ps.setString(1, stu.getName());
			ps.setInt(2, stu.getId());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.close(con, ps, rs);
		}
		return 0;
	}
//查
public  List list(){
		List list=new ArrayList();
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("select*from student");
			rs=ps.executeQuery();
			while (rs.next()) {
				Student stu=new Student();
				stu.setId(rs.getInt(1));
				stu.setName(rs.getString(2));
				stu.setAge(rs.getInt(3));
				stu.setBirthday(rs.getDate(4));
			list.add(stu);  
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.close(con, ps, rs);
		}
		return list;
	}

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

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

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