如何连接数据库?(JDBC详解+代码)

1. JAVA 访问数据库的技术:


     Jdbc是一种Java 连接数据库技术(Java database connectity), 它是 Java 提供的一些接口,这些接口大部分是数据库厂商提供的(jar包),我们要做的, 是连接数据库以后,如何使用Java代码从数据库中存取数据!
代码下面有对每一步 详细的介绍

public class MyUtils {
    private static final String USER = "root";//连接的用户名
    private static final String PASSWORD= "123456";//连接的密码
    private static final String URL = "jdbc:mysql://localhost:3306/canteen";//连接的端口号+数据库名

    private MyUtils(){}//构造函数声明成私有的不能被new对象
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");//获取数据库驱动
        } catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }
    public static Connection getConnection(){
        Connection conn = null;//获取数据库链接
        try {
            conn = DriverManager.getConnection(URL,USER,PASSWORD);//连接的端口号 用户名 密码
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static void releaseResource(Connection conn, Statement statement){//关闭数据库连接
        try {
            statement.close();
            conn.close();
        } catch (SQLException e){
            e.printStackTrace();
        }
    }
//关闭数据库连接 并关闭从数据库中获取的结果集。(resultSet结果集)
 public static void releaseResource(Connection conn, Statement statement, ResultSet res){
        try {
            statement.close();
            conn.close();
            res.close();//关闭结果集
        } catch (SQLException e){
            e.printStackTrace();
        }
    }
}

    //MySQL驱动固定写法!注意是”MySQL数据库的驱动”

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

连接数据库必要的参数:

URL: 访问数据库的地址:写法:
      jdbc:mysql://数据库所在Ip地址:数据库端口/数据库的名字
name : 要连接的数据库的账户名

password : 要连接数据库的用户密码          

//找到本机的数据库应用,3306是数据库的默认端口 8080是tomkat的默认端口

String url = "jdbc:mysql://localhost:3306/student";
String name = "root";//将要连接数据库的账户
String password = "root";//将要连接数据库的密码
Connection connection = DriverManager.getConnection(url,name,password);

获得执行sql语句的对象
用于执行SQL语句
PreparedStatement接口继承了Statement,
Statement(固定),和 PreparedStatement(可变参数) 是SQL语句的两种执行方式

已知参数用Statement     

未知参数用PreparedStatement(就是你不知道你要获取的是什么)

1.在遇到要执行的SQL语句是带可变参数的时候,就用PreparedStatement对象,应为PreparedStatement可以用占位符将SQL语句加入可变参数!:
String sql = "insert into user(sno,name,age)values(?,?,?)";//定义一个要执行的SQL语句
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1,student.getSno());//设置SQL语句的第一个参数
ps.setString(2,student.getName());//设置SQL语句的第二个参数
ps.setInt(3,student.getAge());//设置SQL语句的第三个参数
2.当要执行的SQL语句的是不带可变参数的时(就是SQL语句不变时!):
  
 String sql = "SELECT * FROM user";
    Statement statement = connection.createStatement();//sql语句的执行对象
    ResultSet row = statement.executeQuery(sql);//执行SQL语句
PreparedStatement 和Statement的区别:
PreparedStatement:用户通过你系统输入变量时,变量将加入你的SQL语句,这样就能在不知道你的用户输入的情况下,获取信息


执行SQL语句

  两种语句:

  1).不用返回数据库信息: 增,删,改

    exexuteUpdate() 方法 : 返回一个整形(对数据库影响的行数)

    如果int a=0,那么如果数据库里的内容有变动,a=exexuteUpdate 中a=1。

2).需要返回数据库信息:
  查
    exexuteQuery() 方法 : 返回一个结果集对象(Resultest 在数据库中查到的一条数据)
    读取返回对象集中的数据的方法: (就是集合的迭代器)
   Resultest.next()能够返回给你还有没有记录,
   getObjeck方法,读取一条记录里面字段所对应的值


处理执行后的结果

调用Dao的方法后返回一个结果给servlet 让servlet进行处理!:如:
int row = UserDAD.insert(student);
if (row==1){
    jsonObject.put("code",1);
    jsonObject.put("msg","添加成功");
    jsonObject.put("data",student);
}else {
    jsonObject.put("code",2);
    jsonObject.put("msg","添加失败");
}

 释放资源

将用到的传输有关的对象再传输完成后统统释放!  如:
ps.close();

connection.close();




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值