mysql调用java
使用jdbc驱动 六个步骤
创建链接
加载驱动
获取示例
执行sql语句
获取结果集
关闭连接
代码示例
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassDbDemo{
publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub
ResultSetresult=null;
Connectioncon=null;
Statementstatement=null;try{//第0步:将mysql的jdbcjar包加入到引用库中来
//第一步:将想要连接的数据库驱动类加载到JVM中来,加载过程中并向DriverManager注册Driver
//成功加载后,会将Mysql的驱动Driver类的实例注册到DriverManager类中。
//使得下面我们获取Connection只需要通过DriverManager就可以了。我不需要通过每个数据库具体的Driver。
Class.forName("com.mysql.jdbc.Driver").newInstance();//第二步,通过DriverManager获取一个和mysql的连接实例con
StringJDBCUrl="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";//
StringuserName="root";
Stringpassword="1557862201";//接受一个jdbcurl,username,password;
con=DriverManager.getConnection(JDBCUrl,userName,password);//第三步:通过con连接获取到Statement实例,执行sql语句
statement=con.createStatement();//statement实例是用于一些不带参数的sql执行,查询,更新,插入,删除操作都可以但是需要构建一个没有占位符的sql字符串
//第四步,statement执行sql语句,查询到的结果集到ResultSet实例,简单查询,没有where语句的查询
result=statement.executeQuery("select*fromstudent");//第五步:从结果集中获取数据
while(result.next()){//根据test库中student表格列名读取数据
intid=result.getInt("id");
Stringname=result.getString("_stuName");
Stringnumber=result.getString("_stuNumber");
StringGrade=result.getString(result.findColumn("_stuGrade"));
StringAddress=result.getString(result.findColumn("_stuAddress"));
System.out
.println("name="+name+"number="+number+"Grade="+Grade+"Address="+Address);
}//插入语句
//statement.executeUpdate("");
insert(statement);//执行带参数的查询,有where语句的查询
intid=2;
executeQuery(con,id);//执行更新操作
updateDate(con,2);
delete(con,"XX");//删除数据行
}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblock
System.out.println("找不到驱动程序类,加载驱动失败!");
e.printStackTrace();
}catch(InstantiationExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SQLExceptionex){//TODOAuto-generatedcatchblock
System.out.println("SQLException:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("VendorError:"+ex.getErrorCode());
ex.printStackTrace();
}finally{//第六步:释放资源
/**
*关闭JDBC对象操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:1、关闭记录集
*2、关闭声明3、关闭连接对象
*/
if(result!=null){//关闭结果集
try{
result.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
result=null;
}if(statement!=null){//关闭执行sql语句代码块
try{
statement.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
statement=null;
}if(con!=null){//关闭连接
try{
con.close();
}catch(SQLExceptione){//TODOAuto-generatedcatchblock
e.printStackTrace();
}
con=null;
}
}
}
❷ 怎样用java连接mysql
Java MySQL 连接
Java 连接 MySQL 需要驱动包,网络就有自行下载,解压后得到jar库文件,然后在对应的项目中导入该库文件。
本实例使用的是 Eclipse,导入 jar 包:
我有一个微信公众号,经常会分享一些Java技术相关的干货,还有一些学习资源。
如果你喜欢我的分享,可以用微信搜索“Java团长”或者“javatuanzhang”关注。
❸ 请问mysql语句中怎么引用java变量啊谢谢啦!
用预编译对象
PreparedStatement
例:
PreparedStatement pstmt = new PreparedStatement();
public static String select(int sno)
{
String sql = "select * from student where sno = ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, sno);
rs = pstmt.executeQuery();
while(rs.next())
{
message = "学号"+rs.getString("sno")+" 姓名"+rs.getString("sname")
}
} catch (SQLException e) {
e.printStackTrace();
}
finally
{
DBDao.close(rs, pstmt, conn);
}
return message;
}
❹ JAVA调用MySQL存储过程
java代码:
Class.forName("com.mysql.jdbc.Driver");
Connectioncon=DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");
Stringsql="{callsel(?)}";
CallableStatementcs=(CallableStatement)con.prepareCall(sql);
cs.execute();
Stringname=cs.getString(1);
System.out.println(name);
创建存储过程代码:
dropprocereifexistssel;
createproceresel(outname1varchar(225))
begin
;
end
输出结果:
❺ 如何使用java连接mysql数据库
Java要连接数据库:
首先你必须安装mysql数据库
当你安装好mysql之后,那么你现在应该安装JDK了(JDK1.6就可以)
安装好JDK之后,就是安装Eclipse了,要支持JDK版本,Eclipse安装的时候会自动去找JDK安装位置的,如果你是解压版的Eclipse,就要配置eclipse.ini文件了,将对应的JDK配置好,这些已经准备就绪的时候,就到mysql中创建数据库和表先创建数据库
CREATE DATABASE SCUTCS;
接着,创建表:
CREATETABLESTUDENT
(
SNOCHAR(7)NOTNULL,
SNAMEVARCHAR(8)NOTNULL,
SEXCHAR(2)NOTNULL,
BDATEDATENOTNULL,
HEIGHTDEC(5,2)DEFAULT000.00,
PRIMARYKEY(SNO)
);然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...)
下面,我们来编写.java文件来演示一下如何访问MySQL数据库importjava.sql.*;
publicclassJDBCTest{
publicstaticvoidmain(String[]args){
//驱动程序名Stringdriver="com.mysql.jdbc.Driver";
//URL指向要访问的数据库名scutcsStringurl="jdbc:mysql://127.0.0.1:3306/scutcs";
//MySQL配置时的用户名Stringuser="root";//MySQL配置时的密码Stringpassword="root";
try{//加载驱动程序Class.forName(driver);
//连续数据库Connectionconn=DriverManager.getConnection(url,user,password);
if(!conn.isClosed())System.out.println("!");
//statement用来执行SQL语句Statementstatement=conn.createStatement();
//要执行的SQL语句Stringsql="select*fromstudent";
//结果集ResultSetrs=statement.executeQuery(sql);
while(rs.next())//选择sname这列数据name=rs.getString("sname
//输出结果System.out.println(rs.getString("sno")+" "+name);}
rs.close();conn.close();
}catch(ClassNotFoundExceptione){
System.out.println("Sorry,can`tfindtheDriver!");e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}}}
❻ 关于mysql中的触发器能调用JAVA吗的搜索推荐
肯定不可以,mysql不能调用java代码,但是可以在java中创建触发器
1.使用SQL创建触发器
DELIMITER$$CREATETRIGGER`catefiles_trigger`AFTERINSERTON`catefiles`FOREACHROWbegin
declarenum1int;setnum1=(selectnumfromest_client_catescan_statuswherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);if(num1>=0)thenupdatecatescan_statussetnum=num1+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;elseinsertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);endif;end$$
2.在Java程序里创建触发器
Stringsql=+"CREATETRIGGERcatefiles_"
+"begin"
+"declarescannumint;"
+"setscannum=(selectnumfromest_client_catescan_statuswhere"
+"cateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId);"
+"if(scannum>=0)then"
+"updatecatescan_statussetnum=scannum+1wherecateid=new.cateIdandtaskid=new.taskIdandclientid=new.clientId;"
+"else"
+"insertcatescan_status(cateid,num,status,taskid,clientid)values(new.cateId,1,0,new.taskid,new.clientId);"
+"endif;"
+"end";
Connectioncon=DbConnectionManager.getConnection();
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.execute();
3.可以看出区别:在java中创建触发器,不需要限定符DELIMITER ,加上的话执行过程中会报MySQL语法错误
❼ 一个关于java调用mysql 存储过程的问题
在存储过程中如果有查询结果集,在java中执行存储过程后,应使用其父接口Statement的getResultSet()方法获取查询结果集,此方法就返回ResultSet,如你上面若想获取存储过程中查询结果集应如下:
ResultSet rs = cst.getResultSet();
以下遍历此rs即可... ...
❽ mysql语句中如何引用java变量 jsp
select
*
from
数据库名
where
name(数据库中字段名)=name;
查询结果是个对象user,然后
if(user!=null){
if(user.getPassword.equals(password)){
判断出用户名和密码正确
}
}
❾ 如何使用Java访问MySQL数据库
import java.sql.*;
public class DataBasePractice {
public static void main(String[] args) {
//声明Connection对象
Connection con;
//驱动程序名
String driver = "com.mysql.jdbc.Driver";
//URL指向要访问的数据库名mydata
String url = "jdbc:mysql://localhost:3306/mydata";
//MySQL配置时的用户名
String user = "root";
//MySQL配置时的密码
String password = "root";
//遍历查询结果集
try {
//加载驱动程序
Class.forName(driver);
//1.getConnection()方法,连接MySQL数据库!!
con = DriverManager.getConnection(url,user,password);
if(!con.isClosed())
System.out.println("Succeeded connecting to the Database!");
//2.创建statement类对象,用来执行SQL语句!!
Statement statement = con.createStatement();
//要执行的SQL语句
String sql = "select * from student";
//3.ResultSet类,用来存放获取的结果集!!
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println(" 学号" + "\t" + " 姓名");
System.out.println("-----------------");
String name = null;
String id = null;
while(rs.next()){
//获取stuname这列数据
name = rs.getString("stuname");
//获取stuid这列数据
id = rs.getString("stuid");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
//输出结果
System.out.println(id + "\t" + name);
}
rs.close();
con.close();
} catch(ClassNotFoundException e) {
//数据库驱动类异常处理
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
//数据库连接失败异常处理
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
System.out.println("数据库数据成功获取!!");
}
}
}
在上面while代码段后面添加以下代码段:
String name = null;
String id = null;
while(rs.next()){
//获取stuname这列数据
name = rs.getString("stuname");
//获取stuid这列数据
id = rs.getString("stuid");
//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
//然后使用GB2312字符集解码指定的字节数组。
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
//输出结果
System.out.println(id + "\t" + name);
}
PreparedStatement psql;
ResultSet res;
//预处理添加数据,其中有两个参数--“?”
psql = con.prepareStatement("insert into student values(?,?)");
psql.setInt(1, 8); //设置参数1,创建id为5的数据
psql.setString(2, "xiaogang"); //设置参数2,name 为小明
psql.executeUpdate(); //执行更新
//预处理更新(修改)数据
psql = con.prepareStatement("update student set stuname = ? where stuid = ?");
psql.setString(1,"xiaowang"); //设置参数1,将name改为王五
psql.setInt(2,10); //设置参数2,将id为2的数据做修改
psql.executeUpdate();
//预处理删除数据
psql = con.prepareStatement("delete from student where stuid = ?");
psql.setInt(1, 5);
psql.executeUpdate();
//查询修改数据后student表中的数据
psql = con.prepareStatement("select*from student");
res = psql.executeQuery(); //执行预处理sql语句
System.out.println("执行增加、修改、删除后的数据");
while(res.next()){
name = res.getString("stuname");
id = res.getString("stuid");
name = new String(name.getBytes("ISO-8859-1"),"gb2312");
System.out.println(id + "\t" + name);
}
res.close();
psql.close();
❿ java里面怎么调用mysql的存储过程的
java代码:
Class.forName("com.mysql.jdbc.Driver");
Connectioncon=DriverManager
.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=111111");
Stringsql="{callsel(?)}";
CallableStatementcs=(CallableStatement)con.prepareCall(sql);
cs.execute();
Stringname=cs.getString(1);
System.out.println(name);
创建存储过程代码:
dropprocereifexistssel;
createproceresel(outname1varchar(225))
begin
;
end
输出结果: