Java中连接MySQL数据库

本文详细介绍了使用JDBC进行数据库操作的基本步骤,包括加载驱动、建立连接、编译及执行SQL语句等,并提供了一个实用的JDBC工具类示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础语法:

--1.加载驱动

--2.获取和数据的连接   jdbc:mysql://ip地址:3306/数据库名 用户名 密码

--3.编译sql语句

--4.设置参数

--5.执行sql语句

例:

try {

    //1.加载驱动

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

    //2.获取和数据的连接jdbc:mysql://ip地址:3306/数据库名 用户名 密码

    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "root");

    //3.编译sql语句

    String sql="insert into student values(?,?,?,?,?,?)";

    PreparedStatement pst = conn.prepareStatement(sql);

    //4.设置参数

    pst.setObject(1, "20151007");

    pst.setObject(2, "田七");

    pst.setObject(3, "");

    pst.setObject(4, "语文");

    pst.setObject(5, 80);

    pst.setObject(6, null);

    //5.执行sql语句

    pst.execute();//无返回值

     //ResultSet rs=pst.executeQuery();//有返回值

} catch (Exception e) {

    e.printStackTrace();

}

连接数据库工具类:

这个工具类前提要在Servesr项目下的context.xml文件倒数第二行加入以下代码。表示数据库缓冲池的设置。以后连接数据库就可以使用缓冲池

<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"

    maxActive="100" maxIdle="20" maxWait="30000" username="root" password="root"

driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" />

JdbcUtil.java:

package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class JdbcUtil {
private Connection conn=null;
private PreparedStatement pst =null;
private ResultSet rs=null;
private static DataSource ds=null;
//private String url="jdbc:mysql://localhost:3306/test";
//private String username="root";
//private String password="root";

    static{
        //1.加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //数据库连接池
            Context context=new InitialContext();
            ds=(DataSource)context.lookup("java:comp/env/jdbc/test");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //2.获取和数据的连接
    public Connection getConn() {
        try {
            //conn = DriverManager.getConnection(url, username, password);
            conn=ds.getConnection();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    //3.增删改数据库编译执行
    public void executeUpdate(String sql,Object...obj){
        getConn();
        try {
            pst = conn.prepareStatement(sql);
            for(int i=0;i<obj.length;i++){
                pst.setObject(i+1, obj[i]);
            }
            pst.execute();//无返回值
            //ResultSet rs=pst.executeQuery();//有返回值
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        close();

    }

    //4.查询数据库编译执行

    public ResultSet executeQuery(String sql,Object...obj){
        getConn();
        try {
            pst = conn.prepareStatement(sql);
            for(int i=0;i<obj.length;i++){
                pst.setObject(i+1, obj[i]);
            }
            rs=pst.executeQuery(); //有返回值
        } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
        return rs;
    }
    //5.连接关闭
    public void close(){
        try {
            if(conn!=null){
                conn.close();
            }
            if(pst!=null){
                pst.close();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值