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("新增成功")
}
}
})
ETL抽取,你可以学学那相关的知识。我原来用过一个工具,但那个并不好,你可以再找找。ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
ETL(or ELT)的流程可以用任何的编程语言去开发完成,由于ETL是极为复杂的过程,而手写程式不易管理,有愈来愈多的企业采用工具协助ETL的开发,并运用其自带的metadata功能来存储来源与目的的对应(mapping)以及转换规则。
工具并可以提供较强大的连接功能(connectivity)来连接来源及目的端,开发人员不用去熟悉各种相异的平台及数据的结构,亦能进行开发。
当然,为了这些好处,付出的代价便是金钱。
方法有很多,这里举出两种常用的:方法1:使用^ *** 作来实现
int
x
=
10
//用二进制表示:x=0b1010
int
y
=
15
//用二进制表示:x=0b1111
System.out.println("x="+x+"
y="+y)
x
=
x^y
//x^y=
0b1010^0b1111
=
0b0101
y
=
x^y
//x^y=
0b0101^0b1111
=
0b1010
=10
x
=
x^y
//x^y=
0b0101^0b1010
=
0b1111
=15
System.out.println("x="+x+"
y="+y)
方法2:使用+,- *** 作来实现
int
x
=
10
int
y
=
15
System.out.println("x="+x+"
y="+y)
x
=
x+y
//x=
10+15=25
y
=
x-y
//y=
25-15=10
x
=
x-y
//x=
25-10=15
System.out.println("x="+x+"
y="+y)
结果:
x=10
y=15
x=15
y=10
早期为了减少中间变量对计算机内存的占用,采用中间的方法来交换数据。其实这种交换并不完美,如果交换的两个数都很大,可能会内存溢出。在现在的开发中建议使用中间值来交换数值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)