java橋連接sql server--關於登錄驗證及對資料庫增刪改查應用
一:步驟
1.sql server建立資料庫和相關表
2.建立數據源
(1).打開控制面板找到管理,打開ODBC選項或直接搜索數據源
(2).打開數據源配置後點擊添加,選擇sql server點擊完成
(3).給數據源命名,伺服器選擇本機電腦sql server 伺服器名下一步
後面全部點下一步或確定就可以了。
3.代碼設計
1.載入資料庫驅動
2.與數據源建立連接
3.與資料庫建立會話
4.操作資料庫
經常使用的一些JDBC URLJDBC-ODBC:jdbc:odbc:Oracle:jdbc:oracle:thin:@DB2:jdbc:db2:MyTest or jdbc.db2://localhost:6789/MyTest(需要用戶名和密碼)sql server資料庫連接package mybook;
import java.sql.*;
import javax.swing.JOptionPane;
public class bookdb {
String drivername="sun.jdbc.odbc.JdbcOdbcDriver";//驅動名
Connection conn;
Statement stmt;
ResultSet rs;
bookdb{
try {
Class.forName(drivername);
conn=DriverManager.getConnection("jdbc:odbc:bookdb","sa","zhangyabiao");//與數據源bookdb建立連接
stmt=conn.createStatement;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace;
}
}
public ResultSet find(String sql){//對資料庫進行數據查詢
try {
rs=stmt.executeQuery(sql);
return rs;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace;
return null;
}
}
public boolean update(String sql){//對增刪改
try {
stmt.executeUpdate(sql);
//JOptionPane.showInternalMessageDialog(null, "執行成功");
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace;
//JOptionPane.showInternalMessageDialog(null, "執行失敗");
return false;
}
}
}
資料庫登錄驗證及賬戶註冊
package mybook;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class denglu extends JFrame implements ActionListener{
JPanel p1,p2,p3;
JLabel l1,l2;
JTextField f1;
JPasswordField f2;
JButton b1,b2;
ResultSet rs;
bookframe bf;
bookdb b;
zuce z;
denglu{
b=new bookdb;
this.setLayout(new GridLayout(3,1));
p1=new JPanel;
p2=new JPanel;
p3=new JPanel;
l1=new JLabel("賬戶:");
l2=new JLabel("密碼:");
f1=new JTextField(15);
f2=new JPasswordField(15);
b1=new JButton("登錄");
b2=new JButton("註冊");
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p3.add(b1);
p3.add(b2);
this.add(p1);
this.add(p2);
this.add(p3);
b1.addActionListener(this);
b2.addActionListener(this);
this.setBounds(300, 350, 300, 250);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource==b1){//賬戶驗證
String sql="select *from yonghu where password=""+f2.getText+""";
rs=b.find(sql);
try {
if(rs.next){
bf=new bookframe;
this.dispose;//釋放窗體
}else{
JOptionPane.showMessageDialog(null, "賬戶或密碼錯誤,請重新登錄");
f1.setText("");
f2.setText("");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace;
}
}else if(e.getSource==b2){
z=new zuce;//註冊賬戶
}
}
}
賬戶註冊
package mybook;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class zuce extends JFrame implements ActionListener{
JPanel p1,p2,p3;
JLabel l1,l2;
JTextField f1;
JPasswordField f2;
JButton b1,b2;
ResultSet rs;
bookdb b;
zuce{
b=new bookdb;
this.setLayout(new GridLayout(3,1));
p1=new JPanel;
p2=new JPanel;
p3=new JPanel;
l1=new JLabel("賬戶:");
l2=new JLabel("密碼:");
f1=new JTextField(15);
f2=new JPasswordField(15);
b1=new JButton("保存");
b2=new JButton("取消");
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p3.add(b1);
p3.add(b2);
this.add(p1);
this.add(p2);
this.add(p3);
b1.addActionListener(this);
b2.addActionListener(this);
this.setBounds(400, 400, 300,250 );
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource==b1){
String sql="insert into yonghu values(""+f1.getText+"",""+f2.getText+"")";
if(b.update(sql)){
JOptionPane.showMessageDialog(null, "註冊成功");
this.dispose;
}else{
JOptionPane.showMessageDialog(null, "用戶已存在");
f1.setText("");
f2.setText("");
}
}else{
this.dispose;
}
}
}
對資料庫進行對圖書的增刪改查
package mybook;
import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class bookframe extends JFrame implements ActionListener {
JLabel l1,l2,l3;
JTextField f1,f2,f3;
JButton b1,b2,b3,b4;
JPanel p1,p2,p3,p4,p5;
ResultSet rs;
bookdb b;
bookframe{
b=new bookdb;
this.setLayout(new GridLayout(5,1));
l1=new JLabel("書本編號:");
l2=new JLabel("書 名:");
l3=new JLabel("書本作者:");
f1=new JTextField(15);
f2=new JTextField(15);
f3=new JTextField(15);
b1=new JButton("增加");
b2=new JButton("查詢");
b3=new JButton("修改");
b4=new JButton("刪除");
p1=new JPanel;
p2=new JPanel;
p3=new JPanel;
p4=new JPanel;
p5=new JPanel;
p1.add(l1);
p1.add(f1);
p2.add(l2);
p2.add(f2);
p3.add(l3);
p3.add(f3);
p4.add(b1);
p4.add(b2);
p5.add(b3);
p5.add(b4);
this.add(p1);
this.add(p2);
this.add(p3);
this.add(p4);
this.add(p5);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b3.setEnabled(false);
b4.setEnabled(false);
this.setSize(350, 450);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource==b1){//增加圖書
String sql="insert into book values(""+f1.getText+"",""+f2.getText+"",""+f3.getText+"")";
if(b.update(sql)){
f2.setText("");
f3.setText("");
JOptionPane.showMessageDialog(null, "圖書增加成功");
}else{
JOptionPane.showMessageDialog(null, "圖書編號已存在");
f1.setText("");
f2.setText("");
f3.setText("");
}
}else if(e.getSource==b2){//查找圖書
String sql="select *from book where bookid=""+f1.getText+""";
rs=b.find(sql);
try {
while(rs.next){
f2.setText(rs.getString(2));
f3.setText(rs.getString(3));
b3.setEnabled(true);
b4.setEnabled(true);
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace;
JOptionPane.showMessageDialog(null, "您查找的編號不存在,請重新查找");
f1.setText("");
f2.setText("");
f3.setText("");
}
}else if(e.getSource==b3){//修改圖書資料
String sql="update book set bookname=""+f2.getText+"",bookauthor=""+f3.getText+""where bookid=""+f1.getText+""";
if(b.update(sql)){
JOptionPane.showMessageDialog(null, "修改成功");
f2.setText("");
f3.setText("");
b3.setEnabled(false);
b4.setEnabled(false);
}else{
JOptionPane.showMessageDialog(null, "修改失敗,可能您修改的圖書編號不存在");
}
}else if(e.getSource==b4){//刪除圖書
String sql="delete from book where bookid=""+f1.getText+""";
if(b.update(sql)){
JOptionPane.showMessageDialog(null, "圖書成功刪除");
f1.setText("");
f2.setText("");
f3.setText("");
b3.setEnabled(false);
b4.setEnabled(false);
}else{
JOptionPane.showMessageDialog(null, "沒能查找到您要刪除的圖書編號");
}
}
}
}
主函數
package mybook;
public class frame_main {
public static void main(String[] args) {
// TODO Auto-generated method stub
denglu d=new denglu;
}
}
※Http批量非同步發送和數據保存
※釘釘微應用的開發——主前端
※原創源碼角度分析Android的消息機制系列(六)——Handler的工作原理
※優化mysql資料庫的幾個步驟
※JAVAEE——spring02:使用註解配置spring、sts插件、junit整合測試和aop演示
TAG:達人科技 |
※sqlitestudio可視化操作sqlite資料庫
※增量同步mysql資料庫信息到ElasticSearch
※sqlite-utils:用於構建SQLite資料庫的Python庫和命令行工具
※管理vRealize Automation的vPostgres資料庫
※mybatis使用load data local infile實現導入數據到mysql資料庫
※python web開發-flask連接sqlite資料庫
※Learning Memory Access Patterns,資料庫+機器學習探索
※Servlet 資料庫訪問
※通過 Docker 實現在 Linux 容器中運行 Microsoft SQL Server 資料庫
※UiPath連接Oracle資料庫
※快速查找本地和在線資料庫的exploits-Findsploit
※Intel Tiger Lake處理器出現在UserBenchmark資料庫中
※python後台架構Django——連接讀寫mysql資料庫
※Universal Laser Systems通過增加漢高、赫氏和聖戈班材料,擴大其材料資料庫
※springboot項目中使用原生jdbc連接MySQL資料庫
※使用Django連接Oracle 11g資料庫
※資料庫系統概念中table/view/schema/index的關係
※Gson+pulltorefer+資料庫+httpurlconnection+非同步(更新)
※卧龍會:軟體Hibernate session開啟與資料庫物理連接的時間關係
※雲資料庫TencentDforSQLServer