java操作mysql数据库(如何在Java程序中访问mysql数据库中的数据并进行简单的操作)
本篇文章给大家谈谈java操作mysql数据库,以及如何在Java程序中访问mysql数据库中的数据并进行简单的操作对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
如何在Java程序中访问mysql数据库中的数据并进行简单的操作
在上篇文章给大家介绍了Myeclipse连接mysql数据库的方法,通过本文给大家介绍如何在Java程序中访问mysql数据库中的数据并进行简单的操作,具体详情请看下文。
创建一个javaProject,并输入如下java代码:
package link;
import java.sql.*;
/**
*使用JDBC连接数据库MySQL的过程
* DataBase:fuck, table:person;
*使用myeclipse对mysql数据库进行增删改查的基本操作。
*/
public class JDBCTest{
public static Connection getConnection() throws SQLException,
java.lang.ClassNotFoundException
{
//第一步:加载MySQL的JDBC的驱动
Class.forName("com.mysql.jdbc.Driver");
//取得连接的url,能访问MySQL数据库的用户名,密码;jsj:数据库名
String url="jdbc:mysql://localhost:/fuck";
String username="root";
String password="";
//第二步:创建与MySQL数据库的连接类的实例
Connection con= DriverManager.getConnection(url, username, password);
return con;
}
public static void main(String args[]){
try
{
//第三步:获取连接类实例con,用con创建Statement对象类实例 sql_statement
Connection con= getConnection();
Statement sql_statement= con.createStatement();
//如果同名数据库存在,删除
//sql_statement.executeUpdate("drop table if exists student");
//执行了一个sql语句生成了一个名为student的表
//sql_statement.executeUpdate("create table student(id int not null auto_increment, name varchar() not null default'name', math int not null default, primary key(id));");
//向person表中插入数据
sql_statement.executeUpdate("insert person values(,'liying',)");
sql_statement.executeUpdate("insert person values(,'jiangshan',)");
sql_statement.executeUpdate("insert person values(,'wangjiawu',)");
sql_statement.executeUpdate("insert person values(,'duchangfeng',)");
//第四步:执行查询,用ResultSet类的对象,返回查询的结果
String query="select* from person";
ResultSet result= sql_statement.executeQuery(query);
//显示数据中person表中的内容:
System.out.println("person表中的数据如下:");
System.out.println("------------------------");
System.out.println("序号"+""+"姓名"+""+"分数");
System.out.println("------------------------");
//对获得的查询结果进行处理,对Result类的对象进行操作
while(result.next())
{
int number= result.getInt("number");
String name= result.getString("name");
String mathsorce= result.getString("mathsorce");
//取得数据库中的数据
System.out.println(""+ number+""+ name+""+ mathsorce);
}
//关闭连接和声明
sql_statement.close();
con.close();
} catch(java.lang.ClassNotFoundException e){
System.err.print("ClassNotFoundException");
System.err.println(e.getMessage());
} catch(SQLException ex){
System.err.println("SQLException:"+ ex.getMessage());
}
}
}
注意有几个地方是你需要修改的。
如下图中的url和账号,密码需要与你自己的相一致。
这些需要访问的数据必须要与数据库中的类型相互匹配,才能打印出正确的结果。
右键单击工程名-->Build Path-->Configure Biuld Path-->Libraries--> Add External JARs-->加入一个jdbc包(具体请查考Mysql的简单使用(一))--->ok
这时,在包下会多了一个Referenced Libraries包文件,则说明配置已经成功。
点击Run as--->运行Java Application--->JDBCTest--link--->显示结果如下:
以上所述是小编给大家介绍的如何在Java程序中访问mysql数据库中的数据并进行简单的操作的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:Java语言实现对MySql数据库中数据的增删改查操作的代码Java连接mysql数据库并进行内容查询的方法Java数据库连接池的几种配置方法(以MySQL数据库为例)java jdbc连接mysql数据库实现增删改查操作java连接MySQl数据库实例代码java连接mysql数据库详细步骤解析Java实现获得MySQL数据库中所有表的记录总数可行方法Java连接MYSQL数据库的实现步骤java连接mysql数据库乱码的解决方法Java对MySQL数据库进行连接、查询和修改操作方法
用java连接mysql实现对表中的数据查找,插入,修改等功能,
JDBC操作MySQL数据库的步骤
1、准备MySQL数据库驱动包:mysql-connector-java-5.0.8-bin.jar,一个项目中只能存在一个版本的驱动包
a、复制该驱动包,粘贴到项目中
b、选中项目里的驱动包,右键->Build Path->Add to Build Path
2、在类里写代码加载驱:决定连接哪种数据库
a、Class.forName("com.mysql.jdbc.Driver");
b、必须进行异常处理:ClassNotFoundException
3、连接数据库
a、Connection con=DriverManager.getConnection("连接字符串","用户名","密码");
b、连接字符串格式固定,不同数据库,格式不同:jdbc:mysql://要连接的计算机名称:端口号/要连接的数据库名称
c、必须进行异常处理:SQLException
4、拼写要执行的sql语句,必须是可以在数据库中执行的
5、创建执行sql语句的对象
a、Statement stmt=con.createStatement();
b、注意:Statement必须来自于java.sql包中
6、执行sql语句
a、执行insert、update和delete语句:int row=stmt.executeUpdate(sql);返回影响行数
b、执行查询语句:ResultSet rs=stmt.executeQuery(sql);返回查询结果
c、执行任意sql语句(DDL、DCL、DML和DQL等)
7、对执行结果进行处理
a、执行更新语句:判断影响行数是否为0,0表示失败,非0表示成功
b、对查询结果进行处理:
1)结果集需要先移动、后取值:rs.next();int id=rs.getInt(1);
String name=rs.getString("loginName");
2)结果集有多条时,需要循环操作:
while(rs.next()){ System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4)+"\t"+rs.getInt(5));
}
3)不确定是否有查询结果时:if(rs.next()){说明有查询结果}else{没有查询结果}
4)使用了聚合函数,一定有查询结果,查询结果是一行一列:
rs.next();
int result=rs.getInt(1);
注意:结果集取值时取出的时查询语句中包含的字段,与表中字段无关
9、关闭相关对象(先关闭结果集对象、在关闭执行语句对象,最后关闭连接对象)
例如:执行查询语句
Scanner input=new Scanner(System.in);
System.out.print("请输入登录名:");
String name=input.next();
System.out.print("请输入密码:");
String pass=input.next();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb","root","root");
String sql="select COUNT(*) from UserInfo where loginName='"+name+"' and loginPass='"+pass+"'";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);
rs.next();
int result=rs.getInt(1);
if(result!=0){
System.out.println("登录成功!");
}else{
System.out.println("用户名或密码错误,请重新登录!");
}
rs.close();
stmt.close();
con.close();
} catch(ClassNotFoundException e){
System.out.println("加载驱动错误:"+e.getMessage());
} catch(SQLException e){
System.out.println("数据库操作错误:"+e.getMessage());
}
执行添加、修改和删除语句
try{
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//连接数据库
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb","root","root");
//拼写要执行的sql语句
String sql="update UserInfo set loginPass='111' where loginName='a'";
//String sql="insert UserInfo values(default,'test','test')";
//String sql="delete from UserInfo where loginName='a'";
//创建执行语句对象
Statement stmt=con.createStatement();
//执行
int row=stmt.executeUpdate(sql);
//处理结果
if(row==0){
System.out.println("修改失败!");
}else{
System.out.println("修改成功!");
}
//关闭
stmt.close();
con.close();
} catch(ClassNotFoundException e){
System.out.println("驱动加载错误:"+e.getMessage());
} catch(SQLException e){
System.out.println("数据库操作错误:"+e.getMessage());
}
java如何访问数据库(java访问mysql数据库)
Java可以使用JDBC访问数据库,也可以使用各类ORM框架访问数据库,但这些框架最终还是通过JDBC访问数据库,它们只是封装了数据库操作,而使得开发者可以减少这部分消耗。因此,本文只讲解JDBC访问方式。
JDBC访问一般分为如下流程:
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(StringclassName)实现。
例如:
try{
//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver");
}catch(e){
System.out.println("找不到驱动程序类,加载驱动失败!");
e.();
}
成功加载后,会将Driver类的实例注册到类中。
2、提供JDBC连接的URL
连接URL定义了连接数据库时的协议、子协议、数据源标识。
书写形式:协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&=gbk;
useUnicode=true:表示使用Unicode字符集。如果设置为
gb2312或GBK,本参数必须设置为true。=gbk:字符编码方式。
3、创建数据库的连接
要连接数据库,需要向java.sql.请求并获得Connection对象,该对象就代表一个数据库的连接。
使用的(Stringurl,Stringusername,Stringpassword)方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
Stringurl="jdbc:mysql://localhost:3306/test";
Stringusername="root";
Stringpassword="root";
try{
Connectioncon=
.(url,username,password);
}catch(se){
System.out.println("数据库连接失败!");
se.();
}
4、创建一个Statement
要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过实例实现。
3、执行数据库存储过程。通常通过实例实现。
具体的实现方式:
Statementstmt=con.();
PreparedStatementpstmt=con.prepareStatement(sql);
CallableStatementcstmt=con.prepareCall("{CALLdemoSp(?,?)}");
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery、executeUpdate和execute
1、ResultSetexecuteQuery(StringsqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2、intexecuteUpdate(StringsqlString):用于执行INSERT、UPDATE或DELETE语句以及SQLDDL语句,如:CREATETABLE和DROPTABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:
ResultSetrs=stmt.executeQuery("SELECT*FROM...");
introws=stmt.executeUpdate("INSERTINTO...");
booleanflag=stmt.execute(Stringsql);
6、处理结果
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
Stringname=rs.getString("name");
Stringpass=rs.getString(1);//此方法比较高效(列是从左到右编号的,并且从列1开始)
}
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
1、关闭记录集
2、关闭声明
3、关闭连接对象
if(rs!=null){//关闭记录集
try{
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(stmt!=null){//关闭声明
try{
stmt.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
if(conn!=null){//关闭连接对象
try{
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
关于java操作mysql数据库的内容到此结束,希望对大家有所帮助。