mysql数据库连接总结

    数据库连接总结

第一步:加载驱动程序(应用反射机制)

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

第二步:提供连接数据库的URL(协议/子协议/数据源标识/端口号/数据库名?字符编码集)

String url = "jdbc:mysql://localhost:3306/salary_manage?UseUnicoding =true&characterEncoding =utf8";

第三步:连接数据库

在连接数据之前,需要提供用户名和密码;

String user = 用户名

String password = 密码

Connection conn = DriverManager.getConnection(url, user, password);

 此时如果conn!=null 就表示数据连接数据库成功!

那既然连接数据库成功?我们最终的目的是为了操作数据库,那怎么样做呢?就是执行SQL语句。在执行SQL语句之前我们还需要做点事情!

 第一步:建立一个Statement对象;

 第二步;执行SQL语句

方法一:执行SQL静态语句,使用Statement获得实例,如:

Statement  stm = (Statement) conn.createStatement();

String sql = "insert users values(null,'黄蓉','huangrong','women','2016-6-21')";

int num=stm.executeUpdate(sql);//返回一个整型

System.out.println("插入"+num+"条数据成功");

第一句语句就是获得Statement实例

第二条语句就是sql语句

第三条就是使用executeUpdate()方法执行SQL语句。

方法二:执行动态的SQL语句,就是可以进行预编译

首先:定义失去了语句,需要设置的值都用’?‘表示。如下

String sql = "insert users values(?,?,?,?,?)";

其次,使用prepareStatementsql方法来获得一个PrepareStatement实例,此时会先对sql进行预编译

其次,就是给个字段赋值如下

//设置值

pst.setInt(1, 59);

pst.setString(2, "黄小蓉");

pst.setString(3, "huangrong");

pst.setString(4, "women");

pst.setString(5, "2016-6-12");

最后,执行执行SQL语句此时是无参的

num=pst.executeUpdate();

 

  上面的操作可以真多insert,delete以及update,但是对于select稍微有些变化!

先看一个例子:

String sql = "select * from users ";

PreparedStatement  pst = (PreparedStatement) conn.prepareStatement(sql);

ResultSet rs = (ResultSet) pst.executeQuery();

        while(rs.next()){

         int id = rs.getInt("id");

         String name = rs.getString("name");

         String password = rs.getString("password");

         String sex = rs.getString("sex");

         String birth = rs.getString("birth");

         System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);

        }

 如上例,获得Statement实例还是一样的,只是在执行SQL语句的方法不一样,因为我们在select可能或有多个结果,所以就是使用executeQuery()返回一个结果集,而executeUpdate只是返回一个结果。最终通过结果集的next()方法判断结果集中是否还有记录,就通过字段名得到字段的的取值,最终输出!

对于不使用预编译,也是一样的。如下例:

String sql = "select * from users ";

Statement st = (Statement) conn.createStatement();

ResultSet rs = (ResultSet) st.executeQuery(sql);

        while(rs.next()){

         int id = rs.getInt("id");

         String name = rs.getString("name");

         String password = rs.getString("password");

         String sex = rs.getString("sex");

         String birth = rs.getString("birth");

         System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);

        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值