目录
1.加载驱动 Driver
2.获得连接
3.执行指令
4.关闭资源
一: 首先先建立一个包为:com.zking.util
包中建立一个类:DBHelper类//帮助类
使用静态代码块加载驱动
2. 定义连接语句
3. 获得连接方法 :
4. 关闭资源:连接con,执行对象ps,结果集rs
二.新建一个com.zking.dao 包然后在dao 包里面建立你的类名为数据库表名的类里面的方法:
首先我们先定以资源:
增:
删:
改:
查:
有些电脑运行会报错,报错如下:
1.加载驱动 Driver
- 01.打出SQLServerDriver,按快捷
- 02.使用Class.forName加载驱动
- 代码如下:
1 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
2.获得连接
- 01.编写连接语句
- 代码如下:
2 String url = "jdbc:sqlserver://localhost:1433;databasename=api_284";
- 02.获得连接
- 代码如下:
Connection con = DriverManager.getConnection(url, "sa", "sa123");
3.执行指令
- 01.获得执行对象
- 代码如下:
PreparedStatement ps = con.prepareStatement("insert into student values(?,?,?)");
- 02.让执行对象执行
- 代码如下
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?"成功":"失败");
4.关闭资源
if(con!=null&&!con.isClosed()) {con.close();}if(ps!=null) {ps.close();}
-
以上方法不觉得麻烦吗?自此进阶版的连接数据库的步骤来了
- 因为增删改查有许多代码都是重复的所有请看以下代码
一: 首先先建立一个包为:com.zking.util
包中建立一个类:DBHelper类//帮助类
-
使用静态代码块加载驱动
static {try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
2. 定义连接语句
private static final String URL="jdbc:sqlserver://localhost:1433;databasename=api_284";
3. 获得连接方法 :
public static Connection getCon() {try {return DriverManager.getConnection(URL,"sa","123456");} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}return null;}
4. 关闭资源:连接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) {// TODO: handle exceptione.printStackTrace();}
- 以上就是帮助包的建立 ,建立完后我们就可以在其他其他地方调用我们的帮助包了使用帮助包就可以简化我们的代码。
- 第二部就是我们的建立我们在数据库的增删改查的操作。
二.新建一个com.zking.dao 包然后在dao 包里面建立你的类名为数据库表名的类里面的方法:
首先我们先定以资源:
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) {// TODO: handle exceptione.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 exceptione.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) {// TODO: handle exceptione.printStackTrace();}finally {DBHelper.close(con, ps, rs);}return 0;}
查:
public List<Student> list(){List<Student> list=new ArrayList<Student>();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) {// TODO: handle exceptione.printStackTrace();}finally {DBHelper.close(con, ps, rs);}return list;}
以上就是加精的代码了
有些电脑运行会报错,报错如下:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
查看你电脑上是否打开了TCP/IP协议:
- 打开计算机管理器找到SQLserver管理如图所示:
2. 点击第四个SQL Server 网络配置
打开MSSQLSEVER的协议
会出现以下协议名称你可以看到你的TCP/IP是否打开打开之后你要重启SQLServer服务
重新回到这里点击SQL Server 服务
重新启动SQL Server ( MSSQLSEVER)
点击重新启动即可