Java--JDBC--Mysql

本文详细介绍了使用Java连接并操作MySQL数据库的过程,包括加载驱动、建立连接、执行SQL语句和关闭连接等步骤,以及如何使用Statement和PreparedStatement进行数据查询和插入,并提供了使用存储过程的示例。

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

http://www.cnblogs.com/cy163/archive/2008/08/22/1274413.html

http://blog.youkuaiyun.com/cxwen78/article/details/6863696


先看以上的,下载:mysql-connector-java-5.1.18-bin.jar


1 参数

private String driver = "com.mysql.jdbc.Driver";
	// URL指向要访问的数据库名
	private	String url = "jdbc:mysql://localhost:3306/weibo";
	// MySQL配置时的用户名
	private	String user = "root"; 
	private	String password = "yfms";	
	private Connection conn;

2 连接与关闭

// 加载驱动程序
Class.forName(this.driver);
// 连续数据库
this.conn = DriverManager.getConnection(this.url, this.user, this.password);
if(!conn.isClosed()) {
	System.out.println("成功连接到 weibo本地数据库!");
	flag= true;
}else{
	System.out.println("连接 weibo数据库 失败!");
	flag= false;
}

if(!this.conn.isClosed() ){
	conn.close();
	System.out.println("关闭 weibo 连接!");
}

3 查看数据

Statement 对象
ResultSet 结果集

if(this.conn.isClosed() ){
	System.out.println("没有连接到 weibo!");
}else{
	// statement用来执行SQL语句
	Statement statement = conn.createStatement();
	// 要执行的SQL语句
	String sql = "select uid,nick,gender,follow,fans,weibo,info,tag,edu,job from weicontent";
	// 结果集
	ResultSet rs = statement.executeQuery(sql);
	System.out.println("==============WeiContent===================");
	System.out.println(" uid" + "\t" + " nick" + "\t" + "gender" + "\t"
		+ "follow" + "\t" + "fans" + "\t" + "weibo" + "\t" + "info"
		+ "\t" + "tag" + "\t" + "edu" + "\t" + "job");
	System.out.println("----------------------------------------");       
	while (rs.next()) {
		System.out.println(rs.getString("uid") + "\t"
			+ rs.getString("nick") + "\t" + rs.getString("gender") + "\t"
			+ rs.getString("follow") + "\t" + rs.getString("fans") + "\t"
			+ rs.getString("weibo") + "\t" + rs.getString("info") + "\t"
			+ rs.getString("tag")  + "\t"+ rs.getString("edu") + "\t"
			+ rs.getString("job"));
	}
	rs.close();
}

4 插入数据

使用Statement

public void putOnTask(Hashtable<String,Integer> hsti) throws SQLException{
 	if (this.conn.isClosed() | this.conn==null) {
	System.out.println("没有连接到 weibo!");
	}else{
		Statement statement = conn.createStatement();
		//先清空,写入ontask
		String delete_ontask = "delete from weibo.ontask";
		statement.executeUpdate(delete_ontask);
		Iterator it=hsti.keySet().iterator();
		while(it.hasNext()) {
		String insert_ontask = "insert ignore into ontask(uid) 
			values('"+ it.next().toString().trim() + "')";statement.executeUpdate(insert_ontask);
 }System.out.println("同步ontask ok!"); }}


使用PreparedStatement

public boolean doCreate(Person person) throws Exception {
		boolean flag = false;
		PreparedStatement pstmt = null;
		String sql = "INSERT INTO person(pid,name,age,birthday,address)"
				+ " VALUES (myseq.nextval,?,?,?,?)";
		try {
			pstmt = this.conn.prepareStatement(sql);
			pstmt.setString(1, person.getName());
			pstmt.setInt(2, person.getAge());
			pstmt.setDate(3, new java.sql.Date(person.getBirthday().getTime()));
			pstmt.setString(4, person.getAddress());
			int len = pstmt.executeUpdate();
			if (len > 0) {
				flag = true;
			}
		} catch (Exception e) {
			throw e;
		} finally {
			try {
				pstmt.close();
			} catch (Exception e) {
				throw e;
			}
		}
		return flag;
	}



5 使用存储过程


CallableStatement对象

public synchronized LinkedList<String>  getOntaskProc(int count) throws SQLException{
		LinkedList<String> listr= new LinkedList<String>();
		if (this.conn.isClosed() | this.conn==null) {
			System.out.println("没有连接到 weibo!");
		} else{
			String proc = "{call weibo.Mark_Ontask(?)}";
			CallableStatement cstm = conn.prepareCall(proc); 
			cstm.setString(1,String.valueOf(count));
			cstm.execute();
			//System.out.println(cstm.getString(1));
			String[] str=cstm.getString(1).split(":");
			for(int i=0;i<str.length;i++){
				if(!str[i].equals("")){
					listr.add(str[i]);
				}
			}
			//System.out.println(listr.toString());
		}
		return listr;
	}






                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值