JDBC

一.概述
Java数据库连接(JDBC)是每一个web应用都需要用到的技术,编程人员可以使用这个API接口连接到数据库,并使用结构化查询语言完成对数据库的查找与更新。
在学生信息管理系统的util包中有个DbUtil工具类,我们用它来实现对数据库的操作。
在本文,我们来研究一下JDBC的基本步骤,以及各个常用方法。

二.DbUtil.java

package com.sisheng.util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class DbUtil {

    private static String dbUrl; // 数据库地址
    private static String dbUserName; // 账户名
    private static String dbPassword; // 账户密码
    private static String jdbcName; // jdbc名称

    /**
     * 设置数据库连接参数
     * 
     * @throws IOException
     */
    public static void setDbParameter() throws IOException {
        String propsFilename = "db.properties"; // properties文件名称
        Properties props = new Properties(); // properties类
        props.load(DbUtil.class.getClassLoader().getResourceAsStream(
                propsFilename)); // 通过类加载器的路径来读取配置文件
        dbUrl = props.getProperty("dbUrl");
        dbUserName = props.getProperty("dbUserName");
        dbPassword = props.getProperty("dbPassword");
        jdbcName = props.getProperty("jdbcName");
    }

    /**
     * 获取数据库连接
     * 
     * @return
     * @throws Exception
     * @throws Exception
     */
    public static Connection getCon() throws Exception {

        setDbParameter(); // 设置数据库连接参数
        Class.forName(jdbcName); // 注册驱动
        Connection con = DriverManager.getConnection(dbUrl, dbUserName,
                dbPassword);
        return con;
    }

    /**
     * 关闭数据库连接
     * 
     * @param con
     * @throws Exception
     */
    public static void closeCon(Connection con) throws Exception {
        if (con != null) {
            con.close();
        }
    }

    // 测试
    public static void main(String[] args) {
        try {
            Connection conn = getCon();
            System.out.print("连接成功!");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

db.properties:

dbUrl = jdbc:mysql://localhost:3306/db_studentInfo
dbUserName = root
dbPassword = a13229568334
jdbcName = com.mysql.jdbc.Driver

三.连接数据库的基本步骤
1.获取db.properties文件的属性信息。
2.使用Class.forName(jdbcName) 注册驱动
3.使用DriverManager.getConnection(dbUrl, dbUserName,dbPassword);获取数据库连接

四.执行sql语句
1.登录验证的login方法

public User login(Connection con, User user) throws Exception {
        User result = null;
        String sql = "select * from t_user where userName=? and password=?";
        PreparedStatement pstmt = con.prepareStatement(sql);
        pstmt.setString(1, user.getUsername());
        pstmt.setString(2, user.getPassword());
        ResultSet rs = pstmt.executeQuery();
        if (rs.next()) {
            result = new User();
            result.setUsername(user.getUsername());
            result.setPassword(user.getPassword());
        }
        return result;
    }

2.执行sql语句的基本步骤:
①声明sql语句,里面的参数用?参数占位符代替。

String sql = "select * from t_user where userName=? and password=?";

②使用PreparedStatement,预编译处理sql。

PreparedStatement pstmt = con.prepareStatement(sql);

③设置参数

pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());

④执行,查询操作使用executequery返回resultset,其他的更新操作或者create,delete等操作则使用executeupdate返回受影响的记录数。

ResultSet rs = pstmt.executeQuery();

⑤对返回结果resultset进行利用

if (rs.next()) {
            result = new User();
            result.setUsername(user.getUsername());
            result.setPassword(user.getPassword());
        }

五.为什么用PrepareStatement?
这篇文章讲的很不错:http://www.importnew.com/5006.html

你可能感兴趣的:(java-ee,java,JAVA语言基础,数据库,java,jdbc)