
本文共 9884 字,大约阅读时间需要 32 分钟。
JDBC封装和JAVA标准数据处理,访问MS SQL SERVER,文章最后有JAVA源代码下载和MS SQL SERVER 例子数据库可恢复文件下载
环境:jdk-14.0.1_windows-x64 MS SQLSERVER2014
//封装
//JDBC封装类//
package jdbcutils;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
//import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
//import java.sql.ResultSetMetaData;
import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.HashMap;
import java.util.List;
//import java.util.Map;
// import java.utiljdbcutils .Map;
import java.util.Properties;
public class JdbcUtils
{
// 表示定义数据库的用户名
private final String USERNAME = "sa";
// 定义数据库的密码
private final String PASSWORD = "3201319";
// 定义数据库的驱动信息
private final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 定义访问数据库的地址
private final String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=bhjs";
// 定义数据库的链接
private Connection connection;
// 定义sql语句的执行对象
private PreparedStatement pstmt;
// 定义查询返回的结果集合
private ResultSet resultSet;
public void JdbcUtils()
{
try
{
Class.forName(DRIVER);
System.out.println("注册驱动成功!!");
}
catch (Exception e)
{
// TODO: handle exception
}
}
// 定义获得数据库的链接
public Connection getConnection()
{
try
{
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
System.out.println("数据库连接成功");
}
catch (Exception e)
{
// TODO: handle exception
}
return connection;
}
public ResultSet findMoreResult(String sql, List params) throws SQLException //查询返回多行值
{
int index = 1;
ResultSet resultSet;
pstmt = connection.prepareStatement(sql);
if (params != null && !params.isEmpty())
{
for (int i = 0; i < params.size(); i++)
{
pstmt.setObject(index++, params.get(i));
}
}
resultSet = pstmt.executeQuery();
return resultSet;
}
public boolean updateByPreparedStatement(String sql, List params) throws SQLException //更新
{
boolean flag = false;
int result = -1;// 表示当用户执行添加删除和修改的时候所影响数据库的行数
pstmt = connection.prepareStatement(sql);
int index = 1;
// 填充sql语句中的占位符
if (params != null && !params.isEmpty())
{
for (int i = 0; i < params.size(); i++)
{
pstmt.setObject(index++, params.get(i));
}
}
result = pstmt.executeUpdate();
flag = result > 0 ? true : false;
return flag;
}
public void releaseConn() //释放连接
{
if (resultSet != null)
{
try
{
resultSet.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (pstmt != null)
{
try
{
pstmt.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (connection != null)
{
try
{
connection.close();
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//测试应用/
package form1;
import java.awt.Component;
import java.awt.EventQueue;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
// import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollBar;
import java.awt.ScrollPane;
import javax.swing.JTextField;
//import javax.swing.table.DefaultTableModel;
// import javax.swing.ListSelectionModel;
import jdbcutils.JdbcUtils;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Panel;
import java.awt.Color;
public class form2 {
private JFrame frmJdbc;
//private static final String JdbcUtils1 = null;
private JTable table;
JScrollPane jScrollPane = null;
private JTextField textField;
private JTextField textField_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
form2 window = new form2();
window.frmJdbc.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public form2() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frmJdbc = new JFrame();
frmJdbc.setTitle("JDBC\u5C01\u88C5\u548C\u6570\u636E\u5904\u7406");
frmJdbc.setBounds(400, 100, 636, 561);
frmJdbc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmJdbc.getContentPane().setLayout(null);
///
Connection con = null;
PreparedStatement statement = null;
ResultSet res = null;
List parm1=null;
try {
JdbcUtils JdbcUtils1 =new JdbcUtils();
JdbcUtils1.JdbcUtils();
con=JdbcUtils1.getConnection();
String sql = "select * from info_jqmc ";//查询test表
res=JdbcUtils1.findMoreResult(sql,parm1); //调用jdbc封装类中 查询函数
Vector line1;
Vector rows,columnNames;
rows = new Vector();
columnNames = new Vector();
columnNames.add("jqmc");
columnNames.add("jqip");
while(res.next()){
line1 = new Vector();
line1.add(res.getString("jqmc"));
line1.add(res.getString("jqip"));
rows.add(line1);
}
//定义JTable的对象
table = new JTable(rows, columnNames);
table.setBounds(41, 37, 467, 306);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行
textField.setText((String)table.getValueAt(selectedRowIndex,0));
textField_1.setText((String)table.getValueAt(selectedRowIndex,1));
// 进行相关处理
}
});
jScrollPane = new JScrollPane(table);
jScrollPane.setToolTipText("");
jScrollPane.setBounds(43, 23, 534, 308);
frmJdbc.getContentPane().add(jScrollPane);
} catch (Exception e1) {
// TODO: handle exception
e1.printStackTrace();
}finally{
try {
if(res != null) res.close();
if(statement != null) statement.close();
if(con != null) con.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
/
JButton btnNewButton = new JButton("\u67E5\u8BE2");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnNewButton.setBounds(25, 430, 93, 23);
frmJdbc.getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("\u9000\u51FA");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//lblNewLabel.setText("加载驱动成功!");
}
});
btnNewButton_1.setBounds(497, 430, 93, 23);
frmJdbc.getContentPane().add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("\u5220\u9664");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{ //删除
Connection con = null;
//List param2=null;
boolean fl;
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
if(selectRows==1){
int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行
JdbcUtils JdbcUtils2 =new JdbcUtils();
JdbcUtils2.JdbcUtils();
con=JdbcUtils2.getConnection();
// 进行相关处理
String sql1 = "DELETE from info_jqmc WHERE jqmc=?"; //更新test表
List param2 = new ArrayList();
param2.add(textField.getText());
try
{
fl=JdbcUtils2.updateByPreparedStatement(sql1, param2);
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null,"请先选中行,再点击删除");
}
}
});
btnNewButton_2.setBounds(261, 430, 93, 23);
frmJdbc.getContentPane().add(btnNewButton_2);
JButton btnNewButton_3 = new JButton("\u4FDD\u5B58");
btnNewButton_3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Connection con = null;
//List param2=null;
boolean fl;
int selectRows=table.getSelectedRows().length;// 取得用户所选行的行数
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
if(selectRows==1){
int selectedRowIndex = table.getSelectedRow(); // 取得用户所选单行
JdbcUtils JdbcUtils2 =new JdbcUtils();
JdbcUtils2.JdbcUtils();
con=JdbcUtils2.getConnection();
// 进行相关处理
String sql1 = "UPDATE info_jqmc SET jqmc=?,jqip=? WHERE jqmc=?"; //更新test表
List param2 = new ArrayList();
param2.add(textField.getText());
param2.add(textField_1.getText());
param2.add(textField.getText());
try
{
fl=JdbcUtils2.updateByPreparedStatement(sql1, param2);
}
catch (Exception e1)
{
e1.printStackTrace();
}
}
else
{
JOptionPane.showMessageDialog(null,"请先选中行,再点击保存");
}
}
});
btnNewButton_3.setBounds(379, 430, 93, 23);
frmJdbc.getContentPane().add(btnNewButton_3);
JLabel lblNewLabel_1 = new JLabel("\u673A\u5668\u540D\u79F0\uFF1A");
lblNewLabel_1.setBounds(54, 385, 60, 15);
frmJdbc.getContentPane().add(lblNewLabel_1);
textField = new JTextField();
textField.setBounds(132, 382, 96, 21);
frmJdbc.getContentPane().add(textField);
textField.setColumns(10);
JLabel lblNewLabel_2 = new JLabel("\u673A\u5668\u72B6\u6001");
lblNewLabel_2.setBounds(238, 385, 55, 15);
frmJdbc.getContentPane().add(lblNewLabel_2);
textField_1 = new JTextField();
textField_1.setBounds(303, 382, 96, 21);
frmJdbc.getContentPane().add(textField_1);
textField_1.setColumns(10);
JLabel lblNewLabel = new JLabel("\u7F16\u8F91\uFF1A");
lblNewLabel.setBounds(54, 360, 54, 15);
frmJdbc.getContentPane().add(lblNewLabel);
JButton btnNewButton_4 = new JButton("\u65B0\u589E");
btnNewButton_4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnNewButton_4.setBounds(143, 430, 93, 23);
frmJdbc.getContentPane().add(btnNewButton_4);
//table_1 = new JTable();
//table_1.setBounds(63, 87, 300, 141);
//frame.getContentPane().add(table_1);
}
}
源代码下载:链接: 提取码: g83s
例子:MS SQL SERVER 数据库可恢复文件下载:
链接: 提取码: s88h
JDBC下载:Microsoft JDBC Driver 7.0 for SQL Server
链接: https://pan.baidu.com/s/1PonMpXUKEQyQu3Nf-mtoTw 提取码: w5ys
jdk-14.0.1_windows-x64_bin
链接: https://pan.baidu.com/s/1_Csf5zKneP0i-yYAr3TcIg 提取码: 2f62
eclipse-java-2020-03-R-win32-x86_64
链接: https://pan.baidu.com/s/1BDKwzni6-S05hLS9T_5DLg 提取码: 3qs2
windowbuilder java 界面设计包
链接: https://pan.baidu.com/s/1gfsv4ozdQ2Nz4FRKx_xwEg 提取码: er5n
发表评论
最新留言
关于作者
