最近开始复习以前学过的JDBC今天肝了一晚上 来睡睡回笼觉,长话短说 我们现在开始。

我们先写一个获取数据库连接的jdbc封装类 以后可以用

如果不是maven环境的话在src文件下新建一个db.properties文件

然后在改文件中写入数据库配置信息 :

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/xxxx
username=root
password=xxxx

  然后嘞需要写一个链接数据库的工具类如下:

  

package com.java.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
import java.util.ResourceBundle;

//jdbc 封装工具类
public class JdbcUtil {
    private static String driver;
    private static String url;
    private static String username;
    private static String password;
    /*
     * 静态代码块加载配置文件信息
     */
    static {
        try {
            //1.通过当前类获取类加载器
            ClassLoader classLoader=JdbcUtil.class.getClassLoader();
            //2.类加载器的方式获取输入流
            InputStream  is=classLoader.getResourceAsStream("db.properties");
            //3.创建properties对象
            Properties  props=new Properties();
            //4.加载输入流
            props.load(is);
            //5.获取相关参数的值
            driver=props.getProperty("driver");
            url=props.getProperty("url");
            username=props.getProperty("username");
            password=props.getProperty("password");
            System.out.println(password);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static Connection getConnection() {
        Connection conn = null;
        try {
            // 1.注册驱动
            Class.forName(driver);
            // 2.获取连接
            conn = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    // 释放资源
    public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (pstmt != null) {
            try {
                pstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

  写这个的时候别忘记导入连接驱动包哟=  =

  然后我们创建一个User类

   包含 id name  和password 创建 他们的set get方法 这里忽略不写

  继续创建一个UserDao接口 代码如下:

  

package com.java.dao;

import com.java.domain.User;

import java.util.List;

public interface UserDao {

    //添加
    public void addc(User user);

    //更新
    public void updata(User user);

    //删除
    public void delete(int id) ;

    //通过id查询
    public User findById(int id) ;

    //查询表中所有信息
    public List<User> findAll() ;
}

  在创建UserDao基础的情况下创建一个userDaoimp类 并且实现UserDao 接口的方法,也就是我们所说的增删改查= =  如下:

  

package com.java.dao.impl;

import com.java.dao.UserDao;
import com.java.domain.User;
import com.java.util.JdbcUtil;
import com.sun.xml.internal.bind.v2.model.core.ID;
import org.junit.Test;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class UserDaoImpl implements UserDao{
  
  //增加 @Override public void addc(User user) { Connection conn = null; PreparedStatement pstmt = null; String sql = "insert into user(id,name,password)values(?,?,?)"; conn = JdbcUtil.getConnection(); try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1,user.getId()); pstmt.setString(2,user.getName()); pstmt.setString(3,user.getPassword()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtil.release(conn,pstmt,null); } }
  //更新 @Override public void updata(User user) { Connection conn = null; PreparedStatement ps = null; String sql = "UPDATE user SET name=?,password=? WHERE id=?"; try { conn = JdbcUtil.getConnection(); ps = conn.prepareStatement(sql); ps.setString(1,user.getName()); ps.setString(2,user.getPassword()); ps.setInt(3, user.getId()); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally { JdbcUtil.release(conn,ps,null); } }
  //删除 @Override public void delete(int id) { Connection conn = null; PreparedStatement pstm= null; String sql = "delete from user where id=?"; conn = JdbcUtil.getConnection(); try { pstm = conn.prepareStatement(sql); pstm.setInt(1,id); pstm.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtil.release(conn,pstm,null); } }   
  //通过id查询 @Override public User findById(int id) { Connection conn = null; PreparedStatement pstm = null; ResultSet rs = null; User user = null; String sql ="select name from user where id=?"; conn = JdbcUtil.getConnection(); try { pstm = conn.prepareStatement(sql); pstm.setInt(1,id); rs = pstm.executeQuery(); if (rs.next()){ user = new User(); user.setId(id); user.setName(rs.getString(1)); } } catch (SQLException e) { e.printStackTrace(); }finally { JdbcUtil.release(conn,pstm,rs); } return user; }     

  //查询所有 @Override public List<User> findAll(){ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; User user = null; List<User> userList = new ArrayList<User>(); String sql = "select id,name,password from user"; try{ conn = JdbcUtil.getConnection(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()){ user = new User(); user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setPassword(rs.getString(3)); userList.add(user); } }catch(SQLException e){ e.printStackTrace(); }finally{ JdbcUtil.release(conn, ps, rs); } return userList; } }

  这个时候写好了需要测试一下 所以新建一个测试类 UserDaoTest:

  

package com.java.test;

import com.java.dao.UserDao;
import com.java.dao.impl.UserDaoImpl;
import com.java.domain.User;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;

public class UserDaoTest {

    @Test
    public void addc(){
        User user = new User();
        user.setId(3);
        user.setName("jojo");
        user.setPassword("123123");
        new UserDaoImpl().addc(user);
    }
    @Test
    public void updata(){
        User user = new User();
        user.setName("wang");
        user.setPassword("56745");
        user.setId(2);
        new UserDaoImpl().updata(user);
        System.out.println(user.getName());
        }

        @Test
        public void deletId(){
            int id = 3;
            new UserDaoImpl().delete(id);
        }

        @Test
        public void ByTestID(){
            int id=2;
            User user = new UserDaoImpl().findById(id);
            System.out.println(user.getName());

        }

        @Test
        public void testAllByUser(){
            ArrayList list= (ArrayList) new UserDaoImpl().findAll();
            for(int i=0;i<list.size();i++){
                User user =(User) list.get(i);
                System.out.println(user);

            }

        }
    }

  ok增删改查完了 剩下各位方法的使用比如: PreparedStatement 什么的啊 我明天再详细的写出来  今天再写这个代码的时候遇见过一个问题

  MySQL数据库连接不上并且报错 Can't get hostname for your address 解决方案如下

在计算机---右键管理----服务里面 找到MYSQL 右键属性 找到MYSQL的服务

再右键属性 找到登陆 勾选本地用户。。。

选择完毕之后再重启一下服务就好了= = 累啊。

jdbc 增删改查以及遇见的 数据库报错Can't get hostname for your address如何解决的更多相关文章

  1. JDBC增删改查,PreparedStatement和Statement的区别

    此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...

  2. JDBC增删改查

    /* db.properties的配置 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/day14 username=root ...

  3. jdbc增删改查进行封装

    jdbc封装 1 dao (代码分层) com.aaa.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据 com.aaa.servlet 存放servle ...

  4. JAVA JDBC 增删改查简单例子

    1.数据库配置文件jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username= ...

  5. JDBC增删改查和查唯一的完整代码

    第一部分代码(实体类) package com.wf.entity; public class Hehe{ private int hehe_id; private String hehe_name; ...

  6. 用户增删改查 django生命周期 数据库操作

    一 django生命周期 1 浏览器输入一个请求(get/post)2 响应到django程序中3 执行到url,url通过请求的地址匹配到不同的视图函数4 执行对应的视图函数,此过程可以查询数据库, ...

  7. Java学生信息增删改查(并没用数据库)

    一个泛型的应用,Java版本增删改查,写的简陋,望批评指正 2016-07-02 很久前写的一个程序了.拿出来存一下,不是为了展示啥,自己用的时候还可以看看.写的很粗糙. import java.io ...

  8. JDBC 增删改查代码 过滤查询语句

    package test; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; i ...

  9. Java操作数据库之JDBC增删改查

    1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

随机推荐

  1. 框架学习:ibatis框架的结构和分析

    由于最近一段时间比较忙碌,<框架学习>系列的文章一直在搁浅着,最近开始继续这个系列的文章更新. 在上篇文章中我们说到了hibernate框架,它是一种基于JDBC的主流持久化框架,是一个优 ...

  2. 初识Java——日期的格式化

    import java.util.*; class DateTest{ static{ System.out.println("谢谢使用!");//代码块,在初始化类时,先执行代码 ...

  3. 深入理解SpringCloud之配置刷新

    我们知道在SpringCloud中,当配置变更时,我们通过访问http://xxxx/refresh,可以在不启动服务的情况下获取最新的配置,那么它是如何做到的呢,当我们更改数据库配置并刷新后,如何能 ...

  4. VueJs(9)---组件(父子通讯)

    组件(父子通讯) 一.概括 在一个组件内定义另一个组件,称之为父子组件. 但是要注意的是:1.子组件只能在父组件内部使用(写在父组件tempalte中); 2.默认情况下,子组件无法访问父组件上的数据 ...

  5. python---面向对象高级进阶

    静态方法,调用静态方法后,该方法将无法访问类变量和实例变量 class Dog(object): def __init__(self,name): self.name = name def eat(s ...

  6. Mac下的Bash配置文件冲突问题

    Mac下默认的Bash配置文件是~/.profile.有的软件安装时会生成~/.bash_profiel.有了这个文件.之前的.profiel就不会再被加载,需要手动把里面的文件内容转移到.bash_ ...

  7. unity零基础开始学习做游戏(四)biu~biu~biu发射子弹打飞机

    -------小基原创,转载请给我一个面子 主角都能移动了,那不得做点什么伸张正义,守护世界和平的事嘛,拿起家伙biu~biu~biu~ 首先得做一个好人和一个坏人 老规矩,Canvas下创建两个Im ...

  8. 自定义用户认证(继承django的)

    1.在app下创建一个自己用户认证文件,文件名随意,记得为.py文件 2.编辑该userauth.py文件 #!/usr/bin/env python #coding:utf-8 from djang ...

  9. iview源码解析(1)

    概述 公司技术栈开始用vue主导开发,但因为公司前端会vue的不多所以在项目中用到vue的技术不是很深,之前出去面试被接连打击,而且本来打算开始为公司vue的项目构建自己的组件库所以去下载了iview ...

  10. 七个人生工具:SWOT、PDCA、6W2H、SMART、WBS、时间管理、二八原则

    本文为转载 心理导读:今天为大家分享几个实用的工具,来源网络. SWOT分析法 Strengths:优势 Weaknesses:劣势 Opportunities:机会 Threats:威胁 意义:帮您 ...