Jdbc连接MySQL

       jdbc连接MySQL以前用的真心感觉好牛啊,终于可以用java操作数据库了,想当年我写jdbc的连接可6了,但今天一想,竟然都有一点忘了,特意在写一下,赶紧记下来,以后要是又忘了好能找着;


    下面的是获取jdbc连接首先要加载静态代码块,然后在获取Connection连接,详见下面的注释

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JdbcUtils {
      //加载静态代码块
       static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	private static Connection conn;

	public static Connection getConnection() throws SQLException {
               //获取连接数据库对象
                String url = "jdbc:mysql://localhost:3306/minioj";
		String user = "root";
		String password = "root";
		if (conn == null || conn.isClosed())
			conn=DriverManager.getConnection(url, user, password);
		return conn;
	}
	//关闭资源
	public static void close(Connection conn, PreparedStatement ps, ResultSet rs) throws SQLException {
		if (conn != null ) {
			conn.close();
		}
		if (ps != null) {
			ps.close();
		}
		if (rs != null) {
			rs.close();
		}
	}
}

      插入数据

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.chen.MiniOj.Utils.JdbcUtils;


public class SubmitPro {
	private Connection conn;
	private PreparedStatement ps;
	private ResultSet rs;
	
	public void insertInformation(String SubmitTime,String JudgeStatus,
			String ProID,String ExeTime,String Length,String Language,String Author) {
		try {
			conn = JdbcUtils.getConnection();
			String sql = "insert into Problem(SubmitTime,JudgeStatus,"
					+ "ProID,ExeTime,Length,Language,Author) "
					+ "values (?,?,?,?,?,?,?)";
                       ps = conn.prepareStatement(sql);
                      //给?赋值
                       ps.setString(1, SubmitTime);
			ps.setString(2, JudgeStatus);
			ps.setString(3, ProID);
			ps.setString(4, ExeTime);
			ps.setString(5, Length);
			ps.setString(6, Language);
			ps.setString(7, Author);
			int c = ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//关闭资源
                        try {
				JdbcUtils.close(conn, ps, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
	}
}

               下面的是查询数据,经常使用在登录上

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.chen.MiniOj.Utils.JdbcUtils;

public class UserServiceImpl  {
	private Connection conn;
	private PreparedStatement ps;
	private ResultSet rs;

	public boolean CheckLogin(String username, String password) {
		boolean flag = false;
		try {
			conn = JdbcUtils.getConnection();
			String sql = "select username,password from user where username=? and password=?";
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setString(2, password);
			rs = ps.executeQuery();
			if (rs.next()) {
				flag = true;
			}
			return flag;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return flag;
		} finally {
			try {
				JdbcUtils.close(conn, ps, rs);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}



其实应该有增删改查的,先来这两个吧









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值