import javasql;
public class MysqlTest {
public static void main(String[] args){
// 驱动程序名
String driver = "commysqljdbcDriver";
// URL指向要访问的数据库名world
String url = "jdbc:mysql://127001:3306/world";
// MySQL配置时的用户名
String user = "root";
// MySQL配置时的密码
String password = "123456";
String name;
try {
// 加载驱动程序
ClassforName(driver);
// 连续数据库
Connection conn = DriverManagergetConnection(url, user, password);
if(!connisClosed())
Systemoutprintln("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conncreateStatement();
// 要执行的SQL语句
String sql = "select from city";
// 结果集
ResultSet rs = statementexecuteQuery(sql);
while(rsnext()) {
// 选择Name这列数据
name = rsgetString("Name");
// 输出结果
Systemoutprintln(rsgetString("CountryCode") + "\t" + name);
}
rsclose(); connclose(); }
catch(ClassNotFoundException e) {
Systemoutprintln("Sorry,can`t find the Driver!");
eprintStackTrace();
} catch(SQLException e) {
eprintStackTrace();
} catch(Exception e) {
eprintStackTrace();
}
}
}
import javasqlDriverManager;
import javasqlResultSet;
import javasqlSQLException;
import javasqlConnection;
import javasqlStatement;
public class MysqlDemo {
public static void main(String[] args) throws Exception {
Connection conn = null;
String sql;
// MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称参数=值
// 避免中文乱码要指定useUnicode和characterEncoding
// 执行数据库 *** 作之前要在数据库管理系统上创建一个数据库,名字自己定,
// 下面语句之前就要先创建javademo数据库
String url = "jdbc:mysql://localhost:3306/javademo"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
try {
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过ClassforName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
ClassforName("commysqljdbcDriver");// 动态加载mysql驱动
// or:
// commysqljdbcDriver driver = new commysqljdbcDriver();
// or:
// new commysqljdbcDriver();
Systemoutprintln("成功加载MySQL驱动程序");
// 一个Connection代表一个数据库连接
conn = DriverManagergetConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conncreateStatement();
sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
int result = stmtexecuteUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if (result != -1) {
Systemoutprintln("创建数据表成功");
sql = "insert into student(NO,name) values('2012001','陶伟基')";
result = stmtexecuteUpdate(sql);
sql = "insert into student(NO,name) values('2012002','周小俊')";
result = stmtexecuteUpdate(sql);
sql = "select from student";
ResultSet rs = stmtexecuteQuery(sql);// executeQuery会返回结果的集合,否则返回空值
Systemoutprintln("学号\t姓名");
while (rsnext()) {
Systemout
println(rsgetString(1) + "\t" + rsgetString(2));// 入如果返回的是int类型可以用getInt()
}
}
} catch (SQLException e) {
Systemoutprintln("MySQL *** 作错误");
eprintStackTrace();
} catch (Exception e) {
eprintStackTrace();
} finally {
connclose();
}
}
}
下面代码是使用jdbc直接链接mysql的 *** 作,链接方式与SQL SERVER类似,区别在于加载的驱动不同,url的设置也有点区别,用户名、密码、端口号这些设置都类似
执行脚本返回的结果,可以看出java成功链接上mysql并获取到返回值
mysql-connector-java-5126-binjar是java链接mysql使用的jar包,与SQL SERVER链接也有专门的jar包,jar包中包含了java链接mysql所用到的函数驱动等等,所有的jar包都是放到web工程lib目录下
如果工程是整合在ssh下,一般情况下都会有一个properties文件,该文件配置了数据库链接常用的命令,下图是mysql中的配置
使用spring框架下进行的测试,结果可以成功执行,其实无论是sql server还是mysql还是其他的数据库,基本功能都一样,只是语法结构有所区别,java在调用的过程中大部分功能只要切换了数据库链接命令就可以公用,如果系统架构设计的足够好,当我们切换数据库的时候,应用程序是不用调整就能兼容的
可以使用jdbc预编译+批量更新,这样的执行效率最高。
具体是这样使用的:
循环2000条数据例如数据被装到了一个名叫dataList的List<Map<String,String>>中,那么批量更新就是这样执行的
Map map = null;
String data1= "";
String data2 = "";
String sql = insert into biao values(,);
PreparedStatement preStmt = connprepareStatement(sql);
for(i = 0;i<dataListsize();i++){
map = dataListget(i);
data1=mapget("data1");
data2 = mapget("data2");
preStmtsetString(1,data1);
preStmtsetString(2, data2);
preStmtaddBatch();
}
preStmtexecuteBatch();
preStmtclearBatch();
一般的话,一个数据库连接用完之后是要关闭的。
如果是一个项目的话一般使用数据库连接池,如果有多个数据库的话最好是建立多个连接池,这样的话,在系统启动时,一次加载一定数量的连接对象,用完之后放回去。
如果你仅仅需要两个数据库连接对象的话,不如分别创建两个静态全局变量来保存两个数据库的连接对象。
以上就是关于怎样用jdbc连接mysql数据库全部的内容,包括:怎样用jdbc连接mysql数据库、mysql数据库可以使用jdbc连接吗、java 连接mysql数据库怎么连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)