java如何 *** 作数据库之间的切换

java如何 *** 作数据库之间的切换,第1张

//此类为连接数据并进行数据库的 *** 作

import java.sql.Connection

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.SQLException

import java.sql.Statement

public class Conn {

private static Connection conn = null

private static Statement st = null

private static ResultSet rs = null

//建立数据库的连接

public Conn(){

String url = "jdbc:sqlserver://localhost:1433databaseName=ZYGX"

String user = "sa"

String password = "123"

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")

conn = DriverManager.getConnection(url, user, password)

st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)

} catch (ClassNotFoundException e) {

e.printStackTrace()

} catch (SQLException e) {

e.printStackTrace()

}

}

// 通过不同 的sql语句,得到相应Resultset结果集

public ResultSet getRs(String sql){

try{

rs= st.executeQuery(sql)

}catch(SQLException e){

e.printStackTrace()

}

return rs

}

// 根据不同的sql语句,执行数据库的更新 *** 作

public int updata(String sql){

int num=0

try{

num = st.executeUpdate(sql)

}catch(SQLException e){

e.printStackTrace()

}

return num

}

// 关闭数据库连接相应的资源

public void close(){

try{

if(rs!=null){

rs.close()

rs = null

}

if(st!=null){

st.close()

st = null

}

if(conn!=null){

conn.close()

conn = null

}

}catch(SQLException e){

e.printStackTrace()

}

}

}

----------------------------------------------------------------------

//可以对button里添加动作按钮:

final JButton button = new JButton()

button.addActionListener(new ActionListener() {

public void actionPerformed(final ActionEvent e) {

Conn conn =new Conn()

String sql1="select * from aa where name='"+name+"' "//按name值查找

ResultSet rs = conn.getRs(sql1)

try {

while(rs.next()){

int n=rs.getString("type")

}

} catch (SQLException e) {

e.printStackTrace()

}

String name=textField.getText()

String sql="update aa set tittle='"+name+"' "//从aa表将title字段的值改成textField里的name值

String sql2 ="delete from aa where name='"+name+"'"//从aa表将按取得name的值删除该行数据

String sql3 = "insert into aa (name,uname) values ('"+name+"','"')"//将name,uname值新增到aa表

if(conn.update(sql)==1){

System.out.print("修改成功")

}

if(conn.update(sql2)==1){

System.out.print("删除成功")

}

if(conn.update(sql3)==1){

System.out.print("新增成功")

}

}

})

说一个大概思路吧:

1.读取数据:从数据库中读取数据的同时,拿到元数据,即metadata

2.实例化:通过类名,利用反射 实例你的实体类(类名可以和表名保持一致,这样就不用写额外的

映射了),如果你只是想通过反射赋值的话,你也可以直接new个类;

3.方法调用:通过元数据,利用反射 得到你的set方法(方法名可以和字段名保持一致,否则你要写

出映射关系);

一般来说只要修改hibernate.cfg.xml 然后加入mysql-connector-java-5.0.7-bin.jar就好了 要是你的代码里有原生sql等和具体数据库相关的特征的话 那就要修改代码了

- <session-factory>

- <!-- Database connection settings

-->

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="connection.url">jdbc:mysql://localhost:3306/数据库名?useUnicode=true</property>

<property name="connection.username">账号</property>

<property name="connection.password">密码</property>

- <!-- JDBC connection pool (use the built-in)

-->

<property name="connection.pool_size">1</property>

- <!-- SQL dialect

-->

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

- <!-- Enable Hibernate's automatic session context management

-->

<property name="current_session_context_class">thread</property>

- <!-- Disable the second-level cache

-->

<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

- <!-- Echo all executed SQL to stdout

-->

<property name="show_sql">true</property>

<mapping class="实体类" />

</session-factory>

</hibernate-configuration>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9976534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存