java桥连接sql server之登录验证及对数据库增删改查
一:步骤##
1.sql server建立数据库和相关表
2.建立数据源
(1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源
(2).打开数据源配置后点击添加,选择sql server点击完成
(3).给数据源命名,服务器选择本机电脑sql server 服务器名下一步


后面全部点下一步或确定就可以了。
3.代码设计
1.加载数据库驱动
2.与数据源建立连接
3.与数据库建立会话
4.操作数据库
经常使用的一些JDBC URL###
JDBC-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();
}
}
java桥连接sql server之登录验证及对数据库增删改查的更多相关文章
- java连接sql server--关于登录验证及对数据库增删改查应用
一:步骤## 1.sql server建立数据库和相关表 2.建立数据源 (1).打开控制面板找到管理,打开ODBC选项或直接搜索数据源 (2).打开数据源配置后点击添加,选择sql server ...
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)
接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...
- Android(java)学习笔记136:利用谷歌API对数据库增删改查(推荐使用)
接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1. 首先项目图: 2. 这里的布局文件activity_main.xml: <LinearLayout xmlns:andro ...
- SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询
SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java简单示例-用户登录、单个页面的增删改查及简单分页
index.html -登录->stulist.jsp (index.html传递到LoginServlet,进行登录检测及写入session,NO返回index.html界面,OK 跳转到s ...
- 搭建ssm框架,可实现登录和数据展示以及增删改查
需求: 后台使用ssm(spring-springMVC-mybatis)进行整合 前台使用bootstrap框架 前后台交互使用Ajax进行发送 表结构: 登录页面后显示所有用户信息,可对每条进行增 ...
- IDEA搭建SSM实现登录、注册,数据增删改查功能
本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...
随机推荐
- swift学习 - 分类(Extensions)
在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Ext ...
- 小tips:用java模拟小球做抛物线运动
这几天刚刚学习了java线程,然后跟着书做了几个关于线程的练习,其中有一个练习题是小球动起来.这个相信很简单,只要运用线程就轻松能够实现.然后看到了它的一个课后思考题,怎样让小球做个抛物线运动,这点我 ...
- 这 5 个前端组件库,可以让你放弃 jQuery UI
欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 在建立Web应用时,通常都需要用到一些有用的UI组件.无论应用中需要的是日历,滑块,图形或其它用于提升或简化用户交互的组件,那么 ...
- Redis多实例及主从搭建
主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...
- 在host-only模式下ssh不插网线
visualbox在host-only模式下,宿主机可以在没有网络的条件下ssh虚拟机. 设置方法: 1.在visualbox中,选择全局设置(preference)--网络(network)-- h ...
- Python 关于字符串处理技巧
1.使用多个字符或字符串作为分隔符分割字符串 str.split()方法只能制定单个字符或字符串作为分割符, re.split()方法可以用正则表达式作为分割符, re.split()跟str.spl ...
- 华为A199:近期不会再买华为的手机了
为了支持国货,也省点钱,买了个华为A199: 缺点: 没有google play market很复杂的刷机后才能装Gmail 不过也有亮点: 自带录音功能,老htc通过软件也只能录单方向的哦关机闹 ...
- 用 Hexo + Github 搭建自己的博客
扯在前面 在很久很久以前,一直就想搭建属于自己的一个博客,但由于各种原因,最终都不了了之,恰好最近突然有了兴趣,于是就自己参照网上的教程,搭建了属于自己的博客. 至于为什么要搭建自己的博客了?哈哈,大 ...
- jsp中怎么调用java类中的方法
在jsp页面中先要,引入java类 例如: <%@page import="javabean.DbConn"%><!-- 引入包中的"类" - ...
- Jquery取属性值(复选框、下拉列表、单选按钮)、做全选按钮、JSON存储、去空格
1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...