当前位置:首页>开发>正文

怎么在java中操作mysql数据库 java里面怎么调用mysql的存储过程的

2023-04-13 00:22:29 互联网 未知 开发

 怎么在java中操作mysql数据库 java里面怎么调用mysql的存储过程的

怎么在java中操作mysql数据库

1.安装好jre环境和和jdk,设置好环境变量,很基础,网上教程很多;

2.安装mysql数据库,不用设置数据源和环境变量,只是安装好就可以,具体过程见网上教程,有时候不好安装,可能是因为之前安装没有卸载干净等原因,多查一查怎么弄,多试一试就成功了;

3.为了方便操作数据库,为mysql安装一个可视化界面Navicat,安装过程超级简单,使用也超级简单,傻瓜操作;

4.怎么连接java和mysql呢,这个搞了好久,网上下载一个压缩包mysql-connector-java-5.0.8.zip,解压,将其中的mysql-connector-java-5.0.8-bin.jar文件复制一份粘贴在C:Program
FilesJavajre7libext目录下,也就是放在jrelibext下就行;

5.接下来还要设置一次环境变量,第4步中的压缩包解压后,将解压后文件中mysql-connector-java-5.0.8-bin.jar添加到环境变量classpath中;

java里面怎么调用mysql的存储过程的

首先MySQL的test数据库里定义了一个student表:
create table student4(
id int primary key,
sanme char(5)

插入几个数据做测试用:
inset into student values(1,mayi)
inset into student values(2,mayi)
inset into student values(3,mayi)

建立存储过程:
in 型:
delimiter //
create procedure demo_in(in p_in int)
begin
select p_in
set p_in=2
select p_in
end
//
delimiter

Java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_in(?)")//conn,数据库连接

callstatement.setInt(1, 1)//设置第一个参数

callstatement.execute()//执行

conn.close()//关闭连接

out型:

delimiter //
create procedure demo_out(out s int)
begin
select count(*) into s from student
end
//
delimiter

java测试代码:
CallableStatement callstatement = conn.prepareCall("call demo_out(?)")

callstatement.registerOutParameter(1, java.sql.Types.INTEGER)//注册存储过程的out型参数类型;使用之前必须注册;

callstatement.execute()//执行

System.out.println(callstatement.getInt(1))//获得存储过程的输出参数

conn.close()//关闭连接

总结: 先在数据库中建立存储过程,然后获得数据库连接conn后,生成CallableStatement对象,执行相应的操作。

java怎么连接mysql

下面代码是使用jdbc直接链接mysql的操作,链接方式与SQL SERVER类似,区别在于加载的驱动不同,url的设置也有点区别,用户名、密码、端口号这些设置都类似
执行脚本返回的结果,可以看出java成功链接上mysql并获取到返回值
mysql-connector-java-5.1.26-bin.jar是java链接mysql使用的jar包,与SQL SERVER链接也有专门的jar包,jar包中包含了java链接mysql所用到的函数驱动等等,所有的jar包都是放到web工程lib目录下

如果工程是整合在ssh下,一般情况下都会有一个properties文件,该文件配置了数据库链接常用的命令,下图是mysql中的配置
使用spring框架下进行的测试,结果可以成功执行,其实无论是sql server还是mysql还是其他的数据库,基本功能都一样,只是语法结构有所区别,java在调用的过程中大部分功能只要切换了数据库链接命令就可以公用,如果系统架构设计的足够好,当我们切换数据库的时候,应用程序是不用调整就能兼容的

java怎么调用mysql数据库连接

package wb 
import java.sql.Connection 
import java.sql.DriverManager 
import java.sql.PreparedStatement 
import java.sql.SQLException 
import java.util.Random 

public class Connect { 

    String DBDRIVER="com.mysql.jdbc.Driver" 
    String DBURL="jdbc:mysql://localhost:3306/test" 
    String DBUSER="root" 
    String DBPWD="1995nian" 
    Connection conn=null 

    public Connect(){ 
        try { 
            Class.forName(DBDRIVER) 
            conn=DriverManager.getConnection(DBURL,DBUSER,DBPWD) 
            //System.out.println("数据库连接成功") 
        } catch (ClassNotFoundException e) { 
            // TODO: handle exception 
            e.printStackTrace() 
        } catch (SQLException e) { 
            // TODO: handle exception 
            e.printStackTrace() 
        } 
    } 

    public Connection getCon(){ 
        return conn 
    } 

    public void doSql(double x,double y){ 
        Connection connection=new Connect().getCon() 
        try { 
            String sql="insert into tmp values(?,?)" 
            PreparedStatement ps=connection.prepareStatement(sql) 
            ps.setDouble(1, x) 
            ps.setDouble(2, y) 
            ps.execute() 
            ps.close() 
            connection.close() 
        } catch (Exception e) { 
            // TODO: handle exception 
        } 
    } 

    public void closeCon(){ 
        try{ 
            conn.close() 
        }catch(SQLException e){ 
            e.printStackTrace() 
        } 
    } 
    public static void main(String[] args){ 
        Connect connect=new Connect() 
        Connection connection=connect.getCon() 
        //String sql="insert into tmp values(30,50)" 
        connect.doSql(30, 50) 
    } 
}这是样板,项目还要引入mysql的数据库驱动

用java怎么连MYSQL数据库

//用户名

private String user = ""

//密码

private String password = ""

//主机

private String host = ""

//数据库名字

private String database = ""

/*

private String url="jdbc:mysql://" host "/" "useUnicode=true&characterEncoding=GB2312"

*/

private String url =""

private Connection con = null

Statement stmt

/**

* 根据主机、数据库名称、数据库用户名、数据库用户密码取得连接。

* @param host String

* @param database String

* @param user String

* @param password String

*/

public DBManager(String host, String database, String user, String password) {

this.host = host

this.database = database

this.user = user

this.password = password

//显示中文

this.url = "jdbc:mysql://" host "/" database

"?useUnicode=true&characterEncoding=GB2312"

try {

Class.forName("org.gjt.mm.mysql.Driver")

}

catch (ClassNotFoundException e) {

System.err.println("class not found:" e.getMessage())

}

try {

con = DriverManager.getConnection(this.url, this.user, this.password)

//连接类型为ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY

stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY)

}

catch (SQLException a) {

System.err.println("sql exception:" a.getMessage())

}

}

/**

* 返回取得的连接

*/

public Connection getCon() {

return con

}

/**

* 执行一条简单的查询语句

* 返回取得的结果集

*/

public ResultSet executeQuery(String sql) {

ResultSet rs = null

try {

rs = stmt.executeQuery(sql)

}

catch (SQLException e) {

e.printStackTrace()

}

return rs

}

/**

* 执行一条简单的更新语句

* 执行成功则返回true

*/

public boolean executeUpdate(String sql) {

boolean v = false

try {

v = stmt.executeUpdate(sql) > 0 ? true : false

}

catch (SQLException e) {

e.printStackTrace()

}

finally {

return v

}

}

}

能用的,你可以扩充,比如增加执行预编译语句的方法、执行存储过程的方法,也可以用连接池的方法。