jdbc连接数据库

JDBC介绍

            jdbc主要用于java代码连接数据库,java代码就可以向数据库发送sql语句,操作数据。

 

使用Java代码连接数据库的步骤

              环境搭建

                      导入数据库驱动包驱动包(mysql-connector-java-5.1.37-bin.jar)

             创建对象

                     使用反射技术获取数据库驱动  

                      Class.forName("com.mysql.jdbc.Driver");

             获取连接

                     使用DriverManger的静态方法getConnectionh获取连接

                      Connection connection = DriverManager.getConnection(url, username,password);

                      url为数据库的地址  例:jdbc:mysql://127.0.0.1/数据库名

                       username与password分别为数据库的用户名和密码

           获取sql语句执行对象

                       通过Connection获取sql语句执行对象可以获得

                         方式1:获取Statement(不推荐)

                                 Statement statement = connection.createStatement();

                         方式2:获得Statement的子类对象PreparedStatement (推荐使用,安全性高)

                                 PreparedStatement p  = connection.prepareStatement(sql);

                                   参数为sql语句:注意:不确定的参数使用“?"占位符而不是使用变量

                                   例:select * from  user where id =?

            执行sql语句

                           方式1:使用获得到的Statement执行sql语句

                                   boolean b = statement.execute(sql);

                                            参数为要执行的sql语句,该方法一般用来执行DDL语句

                                  int i  = statement.executeUpdate(sql);

                                           参数为要执行的sql语句,返回值为sql语言影响的行数,该方法一般用来执行DML语句

                                  ResultSet set = statement.executeQuery(sql);

                                         参数为失去了语句,返回查询到的结果集,一般用来执行DQL语句

 

                          方式2:使用获得到的PreparedStatement执行sql语句    

                           下面的这些方法和上面的都一样但是不需要sql语句作为参数,因为获得PreparedStatement时已经指定了sql语句   

                                  boolean b = statement.execute();

                                  int i  = statement.executeUpdate();

                                  ResultSet set = statement.executeQuery();

                          为sql语句里面的“?”号占位符赋值方法

                                  setObject(int i, Object o);

                                             第一个参数为你要为哪一个“?”赋值,

                                             第二个参数为你要问那个参数赋一个什么样的值

                 处理结果集(如果不是查询就不需要这一步)

                              ResultSet获取结果的方法

                                      boolean b  = resultSet.next();

                                          该方法返回一个boolean类型的值,判断是否有下一个元素,有就返回true没有就返回false

                                    Object  o = resultSet.getObject(String s);

                                           参数为列的名字获取指定类的值,返回一个Object,如果想直接获得对应类型的参数,就可以调用

                                           getInt(String), getDouble(String  s)......等等很多类型

                                         上面方法还有重载的方法参数为一个int值        Object  o = resultSet.getObject(int  i);  获取的是第 i 列的数据

                 关闭资源

                          你获取了下面哪一个对象就调用他们哪一个对象的close方法

                           connection.close();
                           statement.close();
                            preparedStatement.close();
                            resultSet.close();

   

 

使用java代码向数据库添加数据   

	String username = "zzzzz";
        	String password = "aaaaa";
        	
        	//使用反射技术创建对象
        	Class.forName("com.mysql.jdbc.Driver");
        	//数据库的url
        	String url = "jdbc:mysql://127.0.0.1/day23";
        	//获取连接
        	Connection connection = DriverManager.getConnection(url, "root","root");
        
        	//获取sql语句执行对象
        	Statement statement = connection.createStatement();
        	//书写sql语句    向user表里面添加数据
        	String sql = "insert into user(username,password) values('"+username+"','"+password+"')";
        	//执行sql语句
        	int i = statement.executeUpdate(sql);
        	System.out.println(i);
        	//关闭资源
        	connection.close();
        	statement.close();
        	

 

使用java代码查询数据库数据

        


        	//数据库的 地址
        	String url = "jdbc:mysql://127.0.0.1/day23";
        	//数据库的密码和用户名
        	String user = "root";
        	String password = "root";
        	//使用反射创建驱动
        	Class.forName("com.mysql.jdbc.Driver");
        	
        	//获取连接
        	Connection connection = DriverManager.getConnection(url, user, password);
        	//书写sql语句     ?号为占位符
        	String sql = "select  *  from staff  where salary = ? ";
        	//获取sql语句执行对象
        	PreparedStatement p = connection.prepareStatement(sql);
        	//为占位符赋值  注意:不是从0开始而是从1开始
        	p.setObject(1, 45);
        	//执行查询  获取结果集对象
        	ResultSet set = p.executeQuery();
        	
        	//循环获取结果集    //判断是否有下一个结果,并且把游标往下移动一位
        	while(set.next()){
        		//获取指定列的值
        		int id = set.getInt("id");
        		String name = set.getString("name");
        		String sex = set.getString("sex");
        		Date date = set.getDate("edate");
        		int salary = set.getInt("salary");
        		System.out.println(id+"  "+name+"  "+sex+"  "+date+"  "+salary);
        	}
        	//关闭资源
        	connection.close();
        	p.close();
        	set.close();
        	

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值