JDBC MySql 入门程序

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

public class MySqlJDBCDemo {
	//加载数据库驱动
	final static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
	
	//设置参数
	final static String URL = "jdbc:mysql://localhost:3306/shop";	//“shop”为对应数据库名
	final static String USER = "root";				//“root”为对应用户名
	final static String PASSWORD = "****";				//“****”为对应密码
	
	//在实际开发中,上面的参数应设置在配置文件中
	
	public static void main(String[] args) {
		//把连接等在这里定义,为了最后关闭资源的时候能判断是否为空
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		try {
			//加载驱动
			Class.forName(JDBC_DRIVER);
			//获取连接
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			//创建一个执行对象Statement
			stmt = conn.createStatement();
			//定义SQL语句
			String sql = "select * from user";
			//执行SQL语句
			rs = stmt.executeQuery(sql);
			//遍历结果
			while(rs.next()){
				//获取用户id,getInt 方法代表获取的值是int类型的
				System.out.print("用户id" + rs.getInt("uid"));
				//获取用户名,getString 方法代表获取的值是String类型的
				System.out.println("用户名" + rs.getString("username"));
			}
			
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
		} finally {
			//关闭资源
			try {
				//关闭前先判断是存在
				if(rs != null)
					rs.close();
				if(stmt != null)
					stmt.close();
				if(conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}


通常我们使用PreparedStatement 代替Statement,因为PreparedStatement 是预编译的,比Statement 速度快,而且代码的可读性和可维护性更强,安全性更高。

但是用PreparedStatement 来代替Statement 会使代码多出几行,初学者入门时可能会有疑惑。

下面是PreparedStatement 对比的示例

//用Statement执行
//定义sql语句,“col”和“var”分别代表键和值
String sql = "insert into tb_name(col1,col2,col2,col4) values('"+var1+"','"+var2+"',"+var3+",'"+var4+"')";
//执行sql语句
stmt.executeUpdate(sql); 
//用PreparedStatement执行
//定义sql语句
String sql = "insert into tb_name (col1,col2,col2,col4) values (?,?,?,?)";
perstmt = con.prepareStatement(sql);
//设置参数,1 代表第一个问号,依此类推
perstmt.setString(1,var1);
perstmt.setString(2,var2);
perstmt.setString(3,var3);
perstmt.setString(4,var4);
perstmt.executeUpdate();



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值