10.(Statemment)数据库的增删改查
Result sql="update admin set password='"+passworld+"' where username='"+username";
整体展示:
import java.sql.*; public class hello { public static void main(String[] args) { try { Class.forName("org.gjt.mm.mysql.Driver"); //引入驱动程序(MySQL的驱动包) try {//数据库链接固定格式((驱动程序))jdbc:mysql://(IP地址)127.0.01:(端口)3306/(访问的数据库)qq2),用户名 用户密码 Connection cn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/qq2","root","121788"); //链接数据库 Statement st=cn.createStatement(); //承接链接数据库,引出sql(下文) /* <写死格式>(直接写数据) //数据插入 String sql="insert into admin(username,passworld) values('ccc','333')"; st.executeUpdate(sql); //数据修改 String sql="update admin set passworld='555' where username='ccc'"; st.executeUpdate(sql); //数据删除 String sql="delete from admin where username='ccc'"; st.executeUpdate(sql); */ /* <活的格式>+字符串的拼接 String username="bbb"; String passworld="333"; // 数据插入 (此时此刻我们要考虑一件事情,那么就是当我们把变量插进去的时候,会默认为是字符串。此时我们应该使用字符串拼接,才能完成我们需要的目的) 使用字符串拼接操作。 String sql="insert into admin(username,passworld) values('"+username+"','"+passworld+"')"; st.executeUpdate(sql); //数据修改 String sql="update admin set passworld='"+passworld+"' where username='"+username+"'"; st.executeUpdate(sql); 数据删除 String sql="delete from admin where username='"+username+"'"; st.executeUpdate(sql); */ //数据查询 ResultSet rs=st.executeQuery("select *from admin"); //查找admin的所有信息 while(rs.next()){//进行读取数据库的信息 System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3));//第一列--第n列的属性; } ResultSet rs1=st.executeQuery("select *from student"); while(rs1.next()){ System.out.println(rs1.getString(1)+" "+rs1.getString(2)+" "+rs1.getString(3)+" "+rs1.getString(4)+" "+rs1.getString(5)); } } catch (SQLException throwables) {//异常提出 throwables.printStackTrace(); } } catch (ClassNotFoundException e) {//异常提出 e.printStackTrace(); } } }
11.链接数据库(PrepareStatement)
1.数据插入:
insert into 表(属性一,属性2) values (?,?)
(PreparedStatement 的对象进行调用 setString(n,添加的数据))
String sql="insert into admin(username,passworld) values (?,?)"; PreparedStatement ps=cn.prepareStatement(sql); ps.setString(1,username); ps.setString(2,passworld); ps.executeUpdate();
2.数据修改:
// //数据修改 String sql="update admin set passworld=? where username=?"; PreparedStatement ps=cn.prepareStatement(sql); ps.setString(1,passworld); ps.setString(2,username); ps.executeUpdate();
数据删除
String sql="delete from admin where username=?"; PreparedStatement ps=cn.prepareStatement(sql); ps.setString(1,username); ps.executeUpdate();
数据单条查询:
PreparedStatement ps=cn.prepareStatement("select *from admin where id=?"); ps.setInt(1,id); ResultSet rs=ps.executeQuery(); ps=cn.prepareStatement("select *from admin"); while(rs.next()){ System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3)); }
数据多条查询
ps=cn.prepareStatement("select *from admin"); ResultSet rs=ps.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+""+rs.getString(2)+""+rs.getString(3)); }
import java.sql.*; public class hello { public static void main(String[] args) { try { Class.forName("org.gjt.mm.mysql.Driver"); //引入驱动程序(MySQL的驱动包) try {//数据库链接固定格式((驱动程序))jdbc:mysql://(IP地址)127.0.01:(端口)3306/(访问的数据库)qq2),用户名 用户密码 Connection cn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/qq2","root","121788"); //链接数据库 String username="fff"; String passworld="789"; int id=1; // //数据插入 // // String sql="insert into admin(username,passworld) values (?,?)"; // PreparedStatement ps=cn.prepareStatement(sql); // ps.setString(1,username); // ps.setString(2,passworld); // ps.executeUpdate(); // //数据修改 // String sql="update admin set passworld=? where username=?"; // PreparedStatement ps=cn.prepareStatement(sql); // ps.setString(1,passworld); // ps.setString(2,username); // ps.executeUpdate(); // //数据删除 // String sql="delete from admin where username=?"; // PreparedStatement ps=cn.prepareStatement(sql); // ps.setString(1,username); // ps.executeUpdate(); //数据查询 PreparedStatement ps=cn.prepareStatement("select *from admin where id=?"); ps.setInt(1,id); ResultSet rs=ps.executeQuery(); //数据查询 ps=cn.prepareStatement("select *from admin"); // ResultSet rs=ps.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3)); } } catch (SQLException throwables) {//异常提出 throwables.printStackTrace(); } } catch (ClassNotFoundException e) {//异常提出 e.printStackTrace(); } } }
12(preparedStatement)与(Statement)的区别
1.两者在操作之前,都必须引入驱动包和链接好mysql.
2.Statement.必须先定义好一个CreatStatement()的语句,然后再调用exectue()语句,在exectue()的语句中进行书写sql语句.
3.PreparedStatement.是先定义一个PreparedStatement()的语句,然后在PreparedStatement()中写入sql语句。然后在调用执行语句exectue().
13.聊天界面和主界面的链接
<主界面>
import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*; public class hello extends JFrame implements ActionListener { //设置文本文框 JTextField UserText=new JTextField(); JPasswordField PassText=new JPasswordField(); JButton Login=new JButton("登入"); JButton Reg=new JButton("注册"); JButton Remove=new JButton("退出"); public hello(){ this.setSize(400,400); //长宽 this.setLocationRelativeTo(null); //居中 //设置按钮组件 JLabel UserLab=new JLabel("用户账号"); JLabel PassLab=new JLabel("密码"); //设置监听: Login.addActionListener(this); Reg.addActionListener(this); Remove.addActionListener(this); //设置画板对标签进行输入位置变化 JPanel JIt=new JPanel(); JIt.setLayout(new GridLayout(2,2)); JIt.add( UserLab); JIt.add(UserText); JIt.add(PassLab); JIt.add(PassText); //设置画板堆按钮进行位置转换 JPanel Bu=new JPanel(); Bu.setLayout(new FlowLayout()); Bu.add(Login); Bu.add(Reg); Bu.add(Remove); //进行整合 this.setLayout(new BorderLayout()); this.add(JIt,BorderLayout.NORTH); this.add(Bu,BorderLayout.SOUTH); } public static void main(String []avgs){ hello h=new hello(); h.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals(Login.getText())){ System.out.println("登入界面生效"); /* if (UserText.getText().equals("aaa")&&PassText.getText().equals("111")) { System.out.println("用户名密码正确"); panel p=new panel(); p.setVisible(true); this.setVisible(false); }else { System.out.println("用户名密码错误"); }*/ String user=UserText.getText(); String pass=PassText.getText(); try { Class.forName("org.gjt.mm.mysql.Driver"); try { Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/qq2","root","121788"); //使用preparedStatement String sql="select * from admin where username = ? and passworld = ?"; PreparedStatement ps=cn.prepareStatement(sql); ps.setString(1,user); ps.setString(2,pass); ResultSet rs=ps.executeQuery(); if(rs.next()){ //假如真 panel p=new panel(); p.setVisible(true); // student s=new student(); // s.setVisible(true); this.setVisible(false); }else{ JOptionPane.showMessageDialog(null,"您输入的密码有误"); //框体的形式输出 } } catch (SQLException ex) { throw new RuntimeException(ex); } } catch (ClassNotFoundException ex) { throw new RuntimeException(ex); } }if(e.getActionCommand().equals(Reg.getText())){ System.out.println("注册界面生效"); }if(e.getActionCommand().equals(Remove.getText())){ System.out.println("退出界面"); System.exit(0); } } }
<聊天界面>
import javax.swing.*; import java.awt.*; public class panel extends JFrame{ public panel(){ this.setSize(400,400); //长宽 this.setLocationRelativeTo(null); //居中 //设置按钮框 JButton Send=new JButton("发送"); JComboBox List=new JComboBox(); //当设置多选框的时候,多选框自己带一个组件 List.addItem("张三"); List.addItem("李四"); List.addItem("王二"); //设置文本文框 JTextField Front=new JTextField(); JTextArea Gitee=new JTextArea(); //设置滑轮操作 JScrollPane Roll=new JScrollPane(Gitee); //添加滑轮的时候,要注意我们添加到哪里,就把添加的对象放进去 //进行多选框和发送合体 JPanel jp1=new JPanel(); jp1.setLayout(new GridLayout(1,2)); jp1.add(List); jp1.add(Send); //进行上框和多选框的合体 JPanel jp2=new JPanel(); jp2.setLayout(new GridLayout(2,1)); jp2.add(Front); jp2.add(jp1); //进行上下框进行合体 JPanel jp3=new JPanel(); jp3.setLayout(new GridLayout(1,1)); jp3.add(jp2); //开始合并 this.setLayout(new BorderLayout()); this.add(jp3,BorderLayout.NORTH); this.add(Roll,BorderLayout.CENTER); //只需要写一个滑轮的即可 } }