package cn.taylor.demo2; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; public class Demo2 { @Test public void fun1() throws ClassNotFoundException, SQLException{ /* * 一. 得到Connection * > 准备四大参数 * > 加载驱动类 * > 得到Connection */ String driverClassName="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/taylor"; String username="root"; String password="123456"; //加载驱动类 Class.forName(driverClassName); //得到Connection Connection con=DriverManager.getConnection(url, username,password); /* * 二.对数据库做增,删,改 * 1.通过Connection对象创建Statement,Statement语句的发送器,它的功能就是发送sql语句。 * 2.调用它的 int excuteUpdate(String sql),可以发送DML,DDL */ //1.通过Connection得到Statement对象 Statement stmt=con.createStatement(); //注意这个Statement的包 //2.使用 Statement发送sql语句 //插入一条数据记录 //String sql="INSERT INTO user VALUES('hahaha','shiyishi','123456')"; //改变数据记录 String sql="UPDATE user SET use6rname='lisi',password='111111' WHERE age='20'"; //返回值r表示是影响几行 int r=stmt.executeUpdate(sql); System.out.println(r); } /* * 三.执行查询 */ @Test public void fun2() throws ClassNotFoundException, SQLException{ /* * 1.得到Connection * 2.得到Statement,发送sql查询语句 * 3.对查询返回的“表格”进行解析 */ String driverClassName="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/taylor"; String mysql_username="root"; String mysql_password="123456"; //加载驱动类 Class.forName(driverClassName); Connection con=DriverManager.getConnection(url, mysql_username,mysql_password); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery("SELECT * FROM user"); //System.out.println(rs); /* * 解析ResultSet * 1.把光标向下移动一行,并判断下一行是否存在 * 2.利用循环,将表中数据输出 */ while(rs.next()){ String username=rs.getString("username"); //通过列名称来获取该列的值 String password=rs.getString(2); String age=rs.getString(3); //通过列编号来获取该列的值 System.out.println(username+ ","+password+","+age); } /* * *四. 关闭资源 */ rs.close(); stmt.close(); con.close(); //这个东西,必须要记得关掉 } //规范化代码 @Test public void fun3() throws Exception{ //定义引用 Connection con=null; Statement stmt=null; ResultSet rs=null; try{ String driverClassName="com.mysql.jdbc.Driver"; String url="jdbc:mysql://localhost:3306/taylor"; String m_username="root"; String m_password="123456"; Class.forName(driverClassName); //实例化 con=DriverManager.getConnection(url, m_username,m_password); stmt=con.createStatement(); rs=stmt.executeQuery("SELECT * FROM user"); //rs.last(); //把光标移动到最后一行 //System.out.println(rs.getRow()); //获取当前行所在编号 //rs.beforeFirst(); //将光标移动到第一行前面 //循环遍历 /* * rs的getString()和getObject()方法比较通用。 */ // while(rs.next()){ // // String username=rs.getString(1); // String password=rs.getString(2); // String age=rs.getString(3); // System.out.println(username + ","+password+","+age); // // } int count=rs.getMetaData().getColumnCount(); //获取列数 while(rs.next()){ for(int i=1;i<=count;i++){ System.out.print(rs.getString(i)); if(i<count){ System.out.print(","); } } System.out.println(); //换行 } }catch(Exception e){ throw new RuntimeException(e); }finally{ //finally里面的语句是一定会执行的 //关闭操作,倒序关闭 if(rs!=null)rs.close(); //判断空指针是为了增强代码的健壮性。 if(stmt!=null)stmt.close(); if(con!=null)con.close(); } } }
使用原生态jdbc操作数据库
猜你喜欢
转载自blog.csdn.net/roseTaylor/article/details/80289955
今日推荐
周排行