JDBC应用小案例

package Jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class RegisterTest {
private Statement state;
public Statement getState() {
    return state;
}

public void setState(Statement state) {
    this.state = state;
}

private static RegisterTest manager;
public static synchronized RegisterTest newInstance(){
    if(manager==null){
        manager=new  RegisterTest();
    }
   return manager;
}

private RegisterTest(){
    //链接数据库的驱动
    String driver="com.mysql.jdbc.Driver";
    //URL指向要访问的数据库名
    String url="jdbc:mysql://localhost:3306/clazz";//固定格式
    //MySQL配置时的用户名
    String user="root";
    //java链接MySQl配置时的密码
    String password="123456";
    try {
        Class.forName(driver);//加载驱动
        Connection con= DriverManager.getConnection(url, user, password);
        if(!con.isClosed()){

            state=con.createStatement();//出错,没有建statement
            String creattable="Create table if not exists user (id int primary key auto_increment,user_name varchar(30) binary NOT NULL,passerword varchar(30) NOT NULL)";
            state.execute(creattable);      
            System.out.println("链接已打开");
    }
        else{
            System.out.println("请打开连接");
        }
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
}
package Jdbc;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;



import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.awt.event.ActionEvent;

public class Register extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;
    private JButton btnNewButton;
    private JTextField textField_2;
    private JLabel lblNewLabel;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Register frame = new Register();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Register() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textField = new JTextField();
        textField.setBounds(125, 39, 128, 28);
        contentPane.add(textField);
        textField.setColumns(10);

        textField_1 = new JTextField();
        textField_1.setBounds(123, 96, 130, 28);
        contentPane.add(textField_1);
        textField_1.setColumns(10);

        btnNewButton = new JButton("\u6CE8\u518C");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String username=textField.getText();
                //正则表达式
                Pattern simple=Pattern.compile("^((\\D|[a-zA-Z]){0,16})$");//单纯的{}表示至少16位
                Matcher matcher=simple.matcher(username);
                boolean m=matcher.matches();
                if(m==false){
                    System.out.println("用户名长度超长,请重新命名");
                    textField.setText("");
                //  textField_1.setText("");
                }
                else{
                    String password=textField_1.getText();
                    String passwordsure=textField_2.getText();
                    if(password.equals(passwordsure)){


                Statement state=RegisterTest.newInstance().getState();
                //注册前是否已经有了这个用户了
//              String sql="select count(*) from user where user_name='+username+'";
//              ResultSet set;
//              try {
//                  set = state.executeQuery(sql);
//                  set.first();
//                  int num=set.getInt(1);
//                  if(num>0){
//                      System.out.println("该用户名已存在");
//                  }
                String sql1="select * from user where user_name='"+username+"'";
                try{
                ResultSet set1=state.executeQuery(sql1);
                set1.last();
                int num1=set1.getRow();
                if(num1>0){
                    System.out.println("该用户名已存在");  
                    textField.setText("");
//                  textField_1.setText("");
//                  textField_2.getText("");

                }
                else{
                        String add="insert into user (user_name,passerword)values('"+username+"','"+password+"')";
                        try {
                            state.execute(add);
                            System.out.println("注册成功");
                            textField.setText("");
                            textField_1.setText("");
                            textField_2.setText("");
                        } catch (SQLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

                }
                    } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
                else{
                        System.out.println("两次密码不同,请重新输入");
                        textField_1.setText("");
                        textField_2.setText("");
                    }
            }   
            }

//              String add="insert into user (user_name,passerword)values('"+username+"','"+password+"')";
//              try {
//                  state.execute(add);
//              } catch (SQLException e) {
//                  // TODO Auto-generated catch block
//                  e.printStackTrace();
//              }
//              
//          }
        });
        btnNewButton.setBounds(141, 209, 93, 23);
        contentPane.add(btnNewButton);

        JLabel lblUsername = new JLabel("\u7528\u6237\u540D");
        lblUsername.setBounds(37, 45, 54, 15);
        contentPane.add(lblUsername);

        JLabel lblPassword = new JLabel("\u5BC6\u7801");
        lblPassword.setBounds(37, 102, 54, 15);
        contentPane.add(lblPassword);

        textField_2 = new JTextField();
        textField_2.setBounds(125, 157, 128, 23);
        contentPane.add(textField_2);
        textField_2.setColumns(10);

        lblNewLabel = new JLabel("\u786E\u8BA4\u5BC6\u7801");
        lblNewLabel.setBounds(37, 161, 54, 15);
        contentPane.add(lblNewLabel);
    }
}

package Jdbc;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;



import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.awt.event.ActionEvent;

public class Login extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;
    private JButton btnNewButton;
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Login frame = new Login();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Login() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textField = new JTextField();
        textField.setBounds(110, 51, 66, 21);
        contentPane.add(textField);
        textField.setColumns(10);

        textField_1 = new JTextField();
        textField_1.setBounds(110, 112, 66, 21);
        contentPane.add(textField_1);
        textField_1.setColumns(10);

        btnNewButton = new JButton("\u767B\u5F55");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String username=textField.getText();
                String password=textField_1.getText();
                Statement state=RegisterTest.newInstance().getState();
                String select="select * from user where user_name='"+username+"'and passerword='"+password+"'";
                String select2="select * from user where  passerword='"+password+"'";
                String select1="select * from user where user_name='"+username+"'";
                try {
                    ResultSet set=state.executeQuery(select);

                    set.last();
                    int num=set.getRow();
                    System.out.println(num);
                    if(num==1){
                        System.out.println("登录成功");
                        textField.setText("");
                        textField_1.setText("");

                    }else{
                        ResultSet set1=state.executeQuery(select1);
                        set1.last();
                        int num1=set1.getRow();
                        ResultSet set2=state.executeQuery(select2);
                        set2.last();
                        int num2=set2.getRow();
                        if(num1==0){                          
                          System.out.println("该用户不存在");
                          textField.setText("");
                        }
                        else{
                        System.out.println("用户名不存在或密码错误");
                        textField.setText("");
                        textField_1.setText("");
                    }
                } 
                    }catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
        btnNewButton.setBounds(107, 162, 93, 23);
        contentPane.add(btnNewButton);

        JLabel lblNewLabel = new JLabel("\u7528\u6237\u540D");
        lblNewLabel.setBounds(33, 54, 54, 15);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("\u5BC6\u7801");
        lblNewLabel_1.setBounds(33, 115, 54, 15);
        contentPane.add(lblNewLabel_1);
    }

}
好的,我可以为您介绍一下JDBC技术的应用案例JDBC是Java Database Connectivity的缩写,是Java EE平台中用于访问数据库的一种标准。下面以一个简单的数据库开发基础案例为例,介绍JDBC技术的应用。 首先,我们需要先在本地安装并配置好MySQL数据库,并创建一个名为"test"的数据库,以及一个名为"user"的表,表结构如下: ```sql CREATE TABLE user ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 然后,我们需要在Java项目中导入MySQLJDBC驱动包,这里以MySQL Connector/J驱动为例。在项目中引入驱动包后,我们可以通过以下代码连接到数据库,并执行一些基本的查询和插入操作。 ```java import java.sql.*; public class JDBCTest { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载MySQLJDBC驱动 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 创建Statement对象,用于执行SQL语句 stmt = conn.createStatement(); // 执行查询操作 rs = stmt.executeQuery("SELECT * FROM user"); // 遍历查询结果集 while (rs.next()) { int id = rs.getInt("id"); String username = rs.getString("username"); String password = rs.getString("password"); System.out.println("id: " + id + ", username: " + username + ", password: " + password); } // 执行插入操作 stmt.executeUpdate("INSERT INTO user (username, password) VALUES ('testuser', 'testpassword')"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接和Statement对象 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 以上代码中,我们首先加载MySQLJDBC驱动,然后建立数据库连接,并创建Statement对象,用于执行SQL语句。接着,我们执行一个查询操作,遍历查询结果集并输出每行数据;然后执行一个插入操作,向user表中插入一条记录。最后,我们关闭连接和Statement对象。 这就是一个简单的JDBC技术的应用案例,通过JDBC技术,我们可以在Java程序中方便地访问和操作数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值