java连接mysql数据库实例
做游戏客户端多一年多了,在大学学的java的SSH,基本上都忘完了,今天看了一下发现基本的连接数据库的都忘了。。。太可怕了这遗忘的速度。
所以写了个连接的例子吧。。安装好mysql数据库之后新建了两张表tx1,tx2。接下来连接数据库,往前面两张表里插入数据。
首先是公共连接类:
TestConnection.java
package cn.wan; import java.sql.Connection;
import java.sql.*; public class TestConnection { private String driver;
private String url;
private String dbName;
private String password;
Connection conn;
Statement sta;
PreparedStatement prepare; public TestConnection()
{
this.driver = "com.mysql.jdbc.Driver";
this.url = "jdbc:mysql://localhost:3306/tx";
this.dbName = "root";
this.password = "126";
} public Connection getConnection()throws Exception
{
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, dbName, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
} public void closeConn()
{
try {
if(this.conn!=null)
{
this.conn.close();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
使用Statement类向tx1中插入数据,值得注意的是tx1表的key是整型的,所以注意插入数据的写法。。
package cn.wan; import java.sql.Connection;
import java.sql.Statement; public class TestStatement { // private static TestConnection connection; public static void main(String[] args)throws Exception
{
Connection conn;
Statement state = null;
Long start = System.currentTimeMillis();
TestConnection connection =new TestConnection();
try {
conn = connection.getConnection();
state = conn.createStatement();
// 需要使用100条sql语句来插入数据
for(int i= 0;i<100;i++)
{
int num= i;
String str2 = "name"+i;
state.executeUpdate("insert into tx1 values('"+num+"','str"+i+"')");
}
System.out.println("使用Statement费时:"+(System.currentTimeMillis()- start));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally
{
connection.closeConn();
if(state !=null)
{
state.close();
}
} }
}
使用PreparedStatement类向tx2表中插入数据,也要注意他的语句的写法:
package cn.wan; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement; public class TestPrepared { public static void main(String[] args)throws Exception
{
String sqlString = "insert into tx2 values(?,?)";
Connection conn= null;
PreparedStatement state = null;
Long startLong = System.currentTimeMillis();
TestConnection connection = new TestConnection();
try {
conn = connection.getConnection();
// 使用Connection来创建一个PreparedStatemet对象
state = conn.prepareStatement(sqlString);
// 100次为PreparedStatemet的参数赋值,就能插入100条记录
for(int i = 0;i<100;i++)
{
state.setInt(1, i);
state.setString(2, i+"");
state.executeUpdate();
}
System.out.println("使用PreparedStatemet耗时:"+(System.currentTimeMillis()-startLong));
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally
{
connection.closeConn();
if(state !=null)
{
state.close();
}
}
}
}
至此连接和两种不同的数据插入就已经完成了。。
java连接mysql数据库实例的更多相关文章
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- MySQL学习(一)——Java连接MySql数据库
MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- 转载:Java连接MySQL 数据库的正确操作流程
转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...
- Java 连接 MySQL 数据库
最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...
- java连接MySql数据库 zeroDateTimeBehavior
JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...
- JDBC Java 连接 MySQL 数据库
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 用于测试的 MySQL 数据库:game 查看数据库中的表 mysql ...
随机推荐
- 机器学习的开源平台 TensorFlow
一. google第二代人工智能机器学习开源工具. http://www.tensorfly.cn/ 二. 知乎上关于机器学习的资料问答 https://www.zhihu.com/question/ ...
- 成员函数的const究竟修饰的是谁
demo <pre name="code" class="cpp">class Test { public: const void OpVar(in ...
- Android混合开发,html5自己主动更新爬过的坑
如今使用混合开发的公司越来越多,尽管出现了一些新技术,比方Facebook的react native.阿里的weex,但依旧阻挡不了一些公司採用h5的决心.当然,这也是从多方面考虑的选择. 在三年前就 ...
- Linux/Unix分配进程ID的方法以及源代码实现
在Linux/Unix系统中.每一个进程都有一个非负整型表示的唯一进程ID.尽管是唯一的.可是进程的ID能够重用.当一个进程终止后,其进程ID就能够再次使用了. 大多数Linux/Unix系统採用延迟 ...
- VS2010中生成遇到的 web.config 问题
1. 错误:无法在此路径使用此配置节.当站点管理员使用继承的配置文件中的 <location allowOverride="false"> 锁定对此节的访问时会出现 ...
- QT内label控件通过opencv显示图像
1.对pro进行配置.使其可以理解opencv. INCLUDEPATH+=d:\opencv249\include\opencv\ d:\opencv249\include\opencv2\ d:\ ...
- 转:Tkinter教程之Text(2)篇
'''Tkinter教程之Text(2)篇''''''6.使用tag来指定文本的属性'''#创建一个指定背景颜色的TAG# -*- coding: cp936 -*-from Tkinter impo ...
- 解决this web application instance has been stopped already
重启tomcat的时候出错 Illegal access: this web application instance has been stopped already. Could not loa ...
- Java学习笔记五(多线程)
1.介绍 线程可以使程序具有两条和两条以上的可运行的路径.尤其对多核CPU特别的重要. 2.创建线程 1.继承Thread类 一个类直接的继承Thread类的话,此类就具有了线程的能力,接下来仅仅须要 ...
- 对UserDict的研究
# -*- coding: utf-8 -*- #python 27 #xiaodeng #对UserDict的研究 class UserDict(): def __init__(self, dict ...