我是受够了MySQL了,因为我本人的水平有限,至今还无法安装MySQL,就是装不了,过程中遇到的报错不下10种,网上的异常全被我遇到了,而且网上的解决办法无法解决我的问题......
我放弃了,暂时放弃MySQL,我使用了SQL Server来作为JDBC的链接对象。
JDBC就是Java链接数据库的一种方式,一种规则。
因为你的Java项目需要链接数据库保存数据。目前来说,JDBC是最底层的东西,当前市面上流行的最火的JDBC封装有hibernate和mybatis,这俩都可以简化一些操作。其实他俩底层还是JDBC,就是做了个封装,让人使用更简单而已。为了深入了解hibernate和mybatis,JDBC还是要学的。
先来尝试一条语句:
package com.StadyJava.day2; import org.junit.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class JDBCDemo { @Test public void Con() throws Exception { String sql="insert SysUser values(‘201408090009‘,123,‘李信‘,‘男‘,‘王者荣耀‘,‘shuyunquan@qq.com‘,‘老师‘)"; //1.加载注册Mysql驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2.链接数据库,获取链接对象 Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Design;user=sa;password=123"); //3.创建语句对象 Statement st=con.createStatement(); //4.执行SQL语句 int row=st.executeUpdate(sql); //5.释放资源 st.close(); con.close(); System.out.println(row); } }
是可以成功的,这里我使用的Jnuit测试单元来做的,不是Main方法,这个以前的博客介绍过。还有JDBC的SQL Server链接包,在Maven里面下载就好了。Maven不会的自己学。
executeUpdate方法可以执行增删改和创建表的语句。
增删改完成了,现在来看看查询语句是怎么写的,首先要知道,JDBC查询会返回一个结果集 ResultSet 这个结果集就像一个游标一样,我们可以逐层访问他里面的内容。
首先我写一个SQL语句
select Name,Sex from SysUser
我查询两个字段,内容是这样的
Name Sex
许嵩 男
林俊杰 男
陈亮 男
缪斯 女
魁拔 女
范锁 男
李信 男
看看代码,换成 executeQuery 了
package com.StadyJava.day2; import org.junit.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JDBCDemo { @Test public void Con() throws Exception { String sql="select Name,Sex from SysUser"; //1.加载注册Mysql驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2.链接数据库,获取链接对象 Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Design;user=sa;password=123"); //3.创建语句对象 Statement st=con.createStatement(); //4.执行SQL语句 ResultSet rs=st.executeQuery(sql); //处理结果集 while (rs.next()){ String name=rs.getString("Name"); String sex=rs.getString("Sex"); System.out.println(name+‘,‘+sex); } //5.释放资源 rs.close(); st.close(); con.close(); } }
未完待续。。。
原文:https://www.cnblogs.com/yunquan/p/10136771.html