DBAccess,java的代码
如何用Java编写一个简单的数据库应用程序
如何用Java编写一个简单的数据库应用程序Java是一个非常强大的编程语言,它提供了多种处理数据库的方案。
下面我们将介绍如何用Java编写一个简单的数据库应用程序。
1.安装Java开发环境(JDK):首先,你需要安装Java开发环境(Java Development Kit,JDK)。
你可以从Oracle官方网站上下载最新版本的JDK,并按照它们提供的说明进行安装。
2.设置环境变量:一旦JDK安装完毕,你需要设置相应的环境变量。
在Windows系统中,你可以在“系统属性”中找到“高级”选项卡,点击“环境变量”,并添加JAVA_HOME变量指向JDK的安装路径。
3.下载并安装数据库:Java支持多种数据库,例如MySQL、Oracle和PostgreSQL。
你可以选择其中一个作为你的数据库。
在这个教程中,我们将使用MySQL作为示范。
从MySQL官方网站下载并安装最新版本的MySQL。
4.连接数据库:一旦数据库安装完毕,你需要编写Java代码来连接数据库。
首先,你需要下载MySQL JDBC驱动程序。
你可以从MySQL官方网站上找到最新版本的驱动程序,并将其添加到你的项目中。
接下来,你需要使用编程语言的`import`语句将这个驱动程序导入到你的Java代码中。
5.建立数据库连接:在你的Java代码中,你需要使用JDBC驱动程序提供的API来建立数据库连接。
这包括创建一个Connection对象,并传入数据库的URL、用户名和密码。
```javaimport java.sql.*;public class Main {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/mydatabase";String user = "root";String password = "mypassword";try {Connection conn = DriverManager.getConnection(url, user, password);System.out.println("Connected to the database");} catch (SQLException e) {System.out.println("An error occurred");e.printStackTrace();}}}```在上面的代码中,`url`变量指定了数据库的URL,`user`和`password`变量指定了连接数据库所需的用户名和密码。
java优秀代码案例
java优秀代码案例
在Java中,有许多优秀的代码案例可供学习。
以下是一些例子:
1. Java Collections Framework: Java的集合框架是一个很好的例子,它展示了如何使用接口和抽象类来创建一个可扩展的系统。
Java集合框架主要
包括两种类型的集合:Collection和Map。
2. Java I/O 库: Java的I/O库也是非常值得学习的。
它提供了许多类和接口,用于处理文件输入和输出,网络通信,数据序列化等。
3. Spring框架: Spring框架是一个非常流行的Java框架,用于构建企业级应用程序。
它是一个开源的Java平台,提供了一种全面的编程和配置模型,用于构建企业级应用程序。
Spring框架的核心是依赖注入和面向切面编程。
4. JUnit: JUnit是一个Java编程语言的单元测试框架。
它用于对Java类进
行单元测试,并帮助开发人员编写可重复的测试。
JUnit是开源的,并且是
极限编程和许多其他方法论的核心工具。
5. Apache Commons Lang: Apache Commons Lang是一个Java核心库,提供了一些实用的工具类和实用程序,用于处理常见的Java类。
这个库包
括字符串处理,日期处理,数学等。
以上都是一些非常优秀的Java代码案例,可以帮助你提高编程技能和编写
更好的代码。
ATM自助取款机系统java代码
public void actionPerformed(ActionEvent e) //界面显示控制{ String IC_Number="";String password="";String IC_No="";z30.setVisible(false);float leftmoney=0;float moneys=0;float mon=0;float money1=0;float money2=0;if(true){int No_50=0,No_100=0;String strin="select NO_50,NO_100 from ATM where ATM_ID='123456789'";ResultSet rsSQLSelect=executeQuery(strin);try{if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString("NO_50"));No_100=Integer.parseInt(rsSQLSelect.getString("NO_100"));}}catch(Exception er){System.out.println("查询ATM机信息出错!");}if(No_50==0&&No_100==0){z1.setVisible(false);t1.setText("对不起,本ATM自动取款机暂停服务!");cl.show(c,"1");}}cl.show(c,"1");if(e.getSource()==z1){t3.setText("");text1.setText("");cl.show(c,"2");}if(e.getSource()==z4||e.getSource()==z6||e.getSource()==z11||e.getSou rce()==z16||e.getSource()==z18||e.getSource()==z22){closeDBConnection();cl.show(c,"1");}if(e.getSource()==z2){closeDBConnection();System.exit(0);}if(e.getSource()==z3){ IC_Number=text1.getText().trim();if(getname(IC_Number)){z5.setVisible(true);pw1.setVisible(true);t4.setVisible(true);pw1.setText("");t5.setText("");cl.show(c,"3");}else{t3.setText("您输入的卡号不存在,请重新输入!");cl.show(c,"2");}}if(e.getSource()==z5){ password=pw1.getText().trim();IC_Number=text1.getText().trim();if(!login(IC_Number,password)){t5.setText("您输入的密码错误,请重新输入!");pw1.setText("");n--;cl.show(c,"3");}else{t5.setText("");cl.show(c,"4");}if(n<0){n=2;t5.setText("您已经三次输入错误密码,谢谢您的使用,欢迎下次光临!");z5.setVisible(false);pw1.setVisible(false);t4.setVisible(false);cl.show(c,"3");}}if(e.getSource()==z7){t33.setText("");cl.show(c,"5");}if(e.getSource()==z8) //余额查询{ DBAccess d=new DBAccess();String str3="";String stri="";IC_Number=text1.getText().trim();t29.setText(IC_Number);leftmoney=getmoney(IC_Number);t30.setText(Float.toString(leftmoney));stri="select bank_name from IC,bank where IC.bank_NO=bank.bank_NO and IC_ID='"+IC_Number+"'";ResultSet rsSQLSelect=d.executeQuery(stri);try{if(rsSQLSelect.next()){str3=rsSQLSelect.getString("bank_name");//mit();}}catch(Exception er){}t32.setText(str3);cl.show(c,"10");}if(e.getSource()==z9){t23.setText("");cl.show(c,"9");}if(e.getSource()==z10){t28.setText("");cl.show(c,"11");}if(e.getSource()==z12){ DBAccess d=new DBAccess();IC_Number=text1.getText().trim();fetchmoney=Integer.parseInt(text2.getText());if(fetchmoney<=0){t9.setText("取款金额非法!请重新输入!");text2.setText("");cl.show(c,"6");return;}if(fetchmoney>1000){t9.setText("每次交易金额最大为1000元!");text2.setText("");cl.show(c,"6");return ;}if(fetchmoney%50!=0){t9.setText("取款金额只能为50的倍数!");text2.setText("");cl.show(c,"6");return ;}leftmoney=getmoney(IC_Number);if(fetchmoney>leftmoney){t9.setText("您的余额不足,请重新输入取款金额!"); text2.setText("");cl.show(c,"6");return ;}int No_50=0,No_100=0,x_50=0,x_100=0,mo=0;String str1="select NO_50,NO_100 from ATM where ATM_ID='123456789'";ResultSet rsSQLSelect=d.executeQuery(str1);try{if(rsSQLSelect.next()){No_50=Integer.parseInt(rsSQLSelect.getString("NO_50"));No_100=Integer.parseInt(rsSQLSelect.getString("NO_100"));}}catch(Exception er){System.out.println("查询ATM机信息出错!");}x_100=fetchmoney/100;if(No_100<x_100){mo=fetchmoney-No_100*100;x_50=mo/50;if(x_50>No_50){t9.setText("取款机现钞不足!");text2.setText("");cl.show(c,"6");return;}else{No_50=No_50-x_50;No_100=0;}}else{No_100=No_100-x_100;x_50=(fetchmoney-x_100*100)/50;if(x_50>No_50){t9.setText("取款机50面值现钞不足!"); text2.setText("");cl.show(c,"6");return;}else{No_50=No_50-x_50;}}String str2="update ATM set NO_50="+No_50+" where ATM_ID='"+ATM_id+"'";String str3="update ATM set NO_100="+No_100+" where ATM_ID='"+ATM_id+"'";d.executeUpdate(str2);d.executeUpdate(str3);setmoney(fetchmoney,IC_Number);t12.setText(Float.toString(fetchmoney));cl.show(c,"7");text2.setText("");。
Java数据库编程
Java数据库编程-JDBC2000-05-17 00:00作者:小锋出处:cpcw责任编辑:p>JDBC是Java的开发者——Sun的Javasoft公司制定的Java数据库连接(Java Data BaseConnectivity)技术的简称,是为各种常用数据库提供无缝联接的技术。
JDBC在Web和Internet应用程序中的作用和ODBC在Windows系列平台应用程序中的作用类似。
ODBC(OpenData Base Connectivity),称为开放式数据库互联技术,是由Microsoft公司倡导并得到业界普遍响应的一门数据库连接技术,如果读者有使用ODBC编程的经验,就会发现JDBC与ODBC很类似。
JDBC现在可以连接的数据库包括:xbase、Oracle、Sybase、Aceess以及Paradox等。
∙JDBC的工作机制如果用户是从事软件领域工作的,不可能没有听说过SQL(Structure Query Language:结构化查询语言),它是一种标准化的关系型数据库访问语言。
在SQL看来,数据库就是表的集合,其中包含了行和列。
SQL标准虽然也还处在不断变革之中(任何一门标准如果已一成不变了,那只能说明这门学科已经停止发展了),但其基本内容相对稳定。
JDBC定义了Java语言同SQL数据之间的程序设计接口。
JDBC有一个非常独特的动态连接结构,它使得系统模块化。
使用JDBC来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。
JavaSoft公司开发了JDBC API,JDBC API是一个标准统一的SQL数据存取接口。
JDBC在Internet中的作用与ODBC在Windows系列中的作用类似。
它为Java程序提供了一个统一缝地操作各种数据库的接口,程序员编程时,可以不关心它所要操作的数据库是哪个厂家的产品,从而提高了软件的通用性,而且在Internet上确实无法预料你的用户想访问什么类型的数据库。
优秀java开源项目代码
优秀java开源项目代码
有许多优秀的Java开源项目可供学习。
以下是一些示例:
1.Spring Framework:Spring是一个开源的Java平台,为开发者提供了
全面的编程和配置模型,以及一个轻量级的无侵入式框架。
它是一个为Java应用程序开发提供全面支持的框架,尤其在开发企业级应用程序方面表现突出。
2.Hibernate:Hibernate是一个对象关系映射(ORM)框架,它允许Java程
序员将对象模型映射到关系数据库中。
Hibernate提供了一种方式,使你可以直接将对象之间的相互作用映射到数据库的CRUD操作。
3.Apache Commons:Apache Commons是一组Java工具库,提供了许
多实用的功能,包括字符串操作、文件操作、数值计算等。
这个项目为Java开发者提供了许多易于使用且高效的工具。
4.Guava:Guava是Google的Java核心库,提供了很多有用的工具类和实
用程序,如缓存、并发库、原始类型支持、集合操作、字符串处理、I/O等。
flix Eureka:Eureka是一个服务发现组件,用于定位运行在AWS云
或其他云平台上的中间层服务,而不需要服务消费者知道服务提供者的实例ID。
flix Hystrix:Hystrix是一个容错管理工具,旨在隔离访问远程系统、
服务和第三方库的点,以防止级联故障。
flix Ribbon:Ribbon是一个客户端负载均衡器,有助于在云端实现
微服务之间的通信。
以上都是优秀的Java开源项目,你可以从中学习到很多知识和技巧。
完整java开发中JDBC连接数据库代码和步骤
完整java开发中JDBC连接数据库代码和步骤∙JDBC连接数据库∙•创建一个以JDBC连接数据库的程序,包含7个步骤:∙1、加载JDBC驱动程序:∙在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),∙这通过ng.Class类的静态方法forName(String className)实现。
∙例如:∙try{∙//加载MySql的驱动类∙ Class.forName("com.mysql.jdbc.Driver") ;∙ }catch(ClassNotFoundException e){∙ System.out.println("找不到驱动程序类,加载驱动失败!");∙ e.printStackTrace() ;∙ }∙成功加载后,会将Driver类的实例注册到DriverManager类中。
∙2、提供JDBC连接的URL∙•连接URL定义了连接数据库时的协议、子协议、数据源标识。
∙•书写形式:协议:子协议:数据源标识∙协议:在JDBC中总是以jdbc开始∙子协议:是桥连接的驱动程序或是数据库管理系统名称。
∙数据源标识:标记找到数据库来源的地址与连接端口。
∙例如:(MySql的连接URL)∙ jdbc:mysql:∙//localhost:3306/test?useUnicode=true&characterEncoding=gb k ;∙ useUnicode=true:表示使用Unicode字符集。
如果characterEncoding设置为∙ gb2312或GBK,本参数必须设置为true。
characterEncoding=gbk:字符编码方式。
∙3、创建数据库的连接∙•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,∙该对象就代表一个数据库的连接。
∙•使用DriverManager的getConnectin(String url , String username ,∙ String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和∙密码来获得。
编程式事务 java 写法
在Java中,编程式事务通常通过使用java.sql.Connection对象和javax.sql.DataSource对象来实现。
以下是一个简单的示例:java复制代码import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class TransactionExample {public static void main(String[] args) {Connection conn = null;PreparedStatement pstmt = null;try {// 1. 获取数据源连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "user", "password");// 2. 开启事务conn.setAutoCommit(false);// 3. 执行SQL语句String sql1 = "UPDATE account SET balance = balance - 100 WHERE name = 'Alice'";pstmt = conn.prepareStatement(sql1);pstmt.executeUpdate();String sql2 = "UPDATE account SET balance = balance + 100 WHERE name = 'Bob'";pstmt = conn.prepareStatement(sql2);pstmt.executeUpdate();// 4. 提交事务mit();} catch (SQLException e) {// 5. 回滚事务if (conn != null) {try {conn.rollback();} catch (SQLException ex) {ex.printStackTrace();}}e.printStackTrace();} finally {// 6. 关闭资源if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}}在这个示例中,我们首先通过DriverManager获取数据源连接,然后通过调用setAutoCommit(false)方法关闭自动提交,开启事务。
Java数据库连接代码
Java数据库连接代码Java数据库连接代码集合Java数据库连接接口(JDBC)是Java里定义的一套用于数据库连接和操作的API的集合。
下面一起跟着店铺深入了解一下吧!有不同的数据库厂商提供这套接口的实现类,对于Java程序员来说,程序员不需要关心数据库的底层的实现,统一的调用JDBC里面的抽象出来的API来完成数据库的访问功能,在Data access的功能和接口定义中,Java是在别的语言对数据库的URL的描述,其他的`一切也就是通过统一的调用来实现了,本文章手机了主要的数据库厂商提供的Driver和URL,以便大家方便的对各种数据库进行连接的操作。
JDBC里统一的使用方法:Class.for(jdbcDriverName);Connectionconn=DriverManager.getConnection(url,user,password);这里的接口是统一的,不同的是每种数据库提供的jdbcDriver和URL不同。
MySQL:String Driver="com.mysql.jdbc.Driver"; //驱动程序String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name为数据库名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).new Instance();Connectioncon=DriverManager.getConnection(URL,Username,Password);Microsoft SQL Server 2.0驱动(3个jar的那个):StringDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法StringURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =db_name"; //db_name为数据库名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).new Instance(); //加载数据可驱动Connectioncon=DriverManager.getConnection(URL,UserName,Password); //Microsoft SQL Server 3.0驱动(1个jar的那个):// 老紫竹完善StringDriver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法StringURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =db_name"; //db_name为数据库名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).new Instance(); //加载数据可驱动Connectioncon=DriverManager.getConnection(URL,UserName,Password); //Sysbase:String Driver="com.sybase.jdbc.SybDriver"; //驱动程序String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);Oracle(用thin模式):String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SIDString Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance(); //加载数据库驱动Connectioncon=DriverManager.getConnection(URL,Username,Password);PostgreSQL:String Driver="org.postgresql.Driver"; //连接数据库的方法String URL="jdbc:postgresql://localhost/db_name"; //db_name为数据可名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);DB2:String Driver="com.ibm.db2.jdbc.app.DB2.Driver"; //连接具有DB2客户端的Provider实例//String Driver=".DB2.Driver"; //连接不具有DB2客户端的Provider实例String URL="jdbc:db2://localhost:5000/db_name"; //db_name为数据可名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);Informix:String Driver="rmix.jdbc.IfxDriver";String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver";//db_name为数据可名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);JDBC-ODBC:String Driver="sun.jdbc.odbc.JdbcOdbcDriver";String URL="jdbc:odbc:dbsource"; //dbsource为数据源名String Username="username"; //用户名String Password="password"; //密码Class.forName(Driver).newInstance();Connectioncon=DriverManager.getConnection(URL,Username,Password);。
java操作Access .mdb数据库的实现
java如何操作access数据库呢?请看下面的例子:[不知道为什么,插入代码时报错,所以就直接贴出来]package mon;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class MsAccessDBUtils {private static MsAccessDBUtils instance = null;public static MsAccessDBUtils getInstance() {if (instance == null) {instance = new MsAccessDBUtils();}return instance;}private MsAccessDBUtils() {}//最先被调用mdbFile=d:\xxx.mdbpublic void loadConfig(String mdbFile,String user,String psw) throws Exception{ mdb_file = mdbFile;user = user;pwd = psw;loadDriver();}public void loadConfig(String mdbFile) throws Exception{mdb_file = mdbFile;loadDriver();}private static String dirverClass = "sun.jdbc.odbc.JdbcOdbcDriver";//jdbc:odbc:Driver={MicroSoft Access Driver*.mdb)};DBQ = Northwind.mdb//jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\\test.mdbprivate static String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=";private static String mdb_file = null;//access 文件[这里要绝对路径]private static String user = "";private static String pwd = "";private static Connection conn;private static Statement stmt;private static ResultSet rs;private void loadDriver() throws Exception{try {Class.forName(dirverClass);} catch (Exception e) {throw e;}}//创建不可滚动的连接public static void connect() throws Exception{try {System.out.println(url+mdb_file);System.out.println(user);System.out.println(pwd);conn = DriverManager.getConnection(url+mdb_file, user, pwd);stmt = conn.createStatement();} catch (Exception e) {throw e;}}public static void connect(boolean autocommit) throws Exception{try {conn = DriverManager.getConnection(url+mdb_file, user, pwd);conn.setAutoCommit(autocommit);stmt = conn.createStatement();} catch (Exception e) {throw e;}}//创建可以滚动的连接public static void connect2() throws Exception{try {conn = DriverManager.getConnection(url+mdb_file, user, pwd);stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONL Y);} catch (Exception e) {throw e;}}//关闭连接public static void close() throws Exception{try {if (rs != null) {rs.close();rs=null;}if (stmt != null) {stmt.close();stmt=null;}if (conn != null) {conn.close();conn=null;}} catch (Exception e) {throw e;}}//查询语句public static List executeQuery(String sql) throws Exception{ List l = new ArrayList();try {if (stmt == null) {connect();}rs = stmt.executeQuery(sql);l = orgResultSet4List(rs);//close();} catch (Exception e) {throw e;}return l;}public static int executeUpdate(String sql) throws Exception{ try {if (stmt == null) {connect();}int res = stmt.executeUpdate(sql);//close();return res;} catch (Exception e) {throw e;}}public static int[] executeUpdate(String[] sql) throws Exception{try {if (stmt == null) {connect(false);}for (int i = 0; i < sql.length; i++) {stmt.addBatch(sql[i]);}int[] res = stmt.executeBatch();mit();//close();return res;} catch (Exception e) {throw e;}}private static List orgResultSet4List(ResultSet rs)throws Exception{try {ResultSetMetaData rsmd = rs.getMetaData();int cols = rsmd.getColumnCount();List l = new ArrayList();Map recordMap = null;while (rs.next()) {recordMap = new HashMap();for (int i = 0; i < cols; i++) {recordMap.put((String)(rsmd.getColumnName(i+1)).toLowerCase(),rs.getObject(i+1));}l.add(recordMap);}return l;}catch (Exception ex) {//ex.printStackTrace();throw ex;}}public static void main(String[] args) {if (args!=null && args.length>0) {System.out.println("args[0]="+args[0]);try {MsAccessDBUtils.getInstance().loadConfig(args[0],"","");} catch (Exception ex) {ex.printStackTrace();System.exit(-1);}MsAccessDBUtils.getInstance().go();}else{System.exit(0);}}void go(){try{for (int k = 0; k < 3; k++) {String sql ="insert into leave_words(cmp_name,tell,web_url,addr,mail,conts,notes)values";sql +="('公司名称2','010*******','','北京大sdf砍刀饭卡第三','aa@','做得很好','[无]')";int res = MsAccessDBUtils.getInstance().executeUpdate(sql);System.out.println("insert=" + res);sql = "select * from leave_words";List l = MsAccessDBUtils.getInstance().executeQuery(sql);MsAccessDBUtils.getInstance().close();if (l != null) {System.out.println("==" + (l.get(0)).toString());java.text.SimpleDateFormat df =new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss W E");Map rowMap;for (int i = 0; i < l.size(); i++) {rowMap = (Map) l.get(i);java.util.Date crt_time =new java.util.Date( ( (java.sql.Timestamp) rowMap.get("crt_time")).getTime());System.out.println(df.format(crt_time));}// java.sql.Date d = new java.sql.Date();}}}catch(Exception ex){ex.printStackTrace();System.exit(-1);}}}。
JAVA 利用JDBC 连接ORACLE数据库的问题与原代码(注释)
1. 导入 Oracle 的 jar 包,项目名(TestConnection)右键>>Bulid Path>>Configure Build path>>(右边界面)Libraries>>Add External Jars>>找到自己安装 oracle 的路径(我 的是 F:\app\user\product\11.2.0\dbhome_1\jdbc\lib),找到 ojdbc6.jar 或者其
4. 编译 SQL 语句 Statement 和 PreparedStatement 的区别
PreparedStatement 继承 Statement,是其子类,execute 、executeQuery 、 execuUpdate
PreparedStatement pstmt = null; Statement stmt = new createStatement();
public class DBFactory { //数据库连接对象 private DBConnection dbconn = new DBConnection(); /** * 获取数据库连接对象实例 * * @return */ public DBConnection getDBConnectionInstace(){ if(dbconn == null){ dbconn = new DBConnection(); return dbconn; }else{ return dbconn; } } /** * 关闭数据库连接 * */ public void closeConnection(Connection conn){ if(dbconn == null){
java+JDBC小项目《学生管理系统》源码带注解
Java+javabean+JDBC学生管理系统一、项目结构本项目是使用javabean和jdbc做的,这个包是实体包这个是菜单包,源码不会再发这些,自己写就好了。
二、项目运行结果三、源码废话不多说,直接上源码:这两个是关键源码,是负责登录和学生信息操作的逻辑类:public class AdminDaoImpl extends DBHelper implements AdminDao { Admin admin = null;/*** 登录*/@SuppressWarnings("resource")@Overridepublic Admin login(String name) {String sql = "select * from admin where username=?";Object[] param = {name};Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try {while (rs.next()) {admin = new Admin();String username = rs.getString("username");String password = rs.getString("password");admin.setUsername(username);admin.setPassword(password);}} catch (SQLException e) {System.out.println("未找到此name");}return admin;}}public class StudentDaoImpl extends DBHelper implements StudentDao {Student stu = null;List<Student> list = null;@SuppressWarnings("resource")@Overridepublic Student getInfoByid(int id) {String sql = "select * from student where id=?";Object[] param = { id };Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;stu = new Student();try {while (rs.next()) {stu.setId(rs.getInt("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));stu.setGender(rs.getString("gender"));stu.setGrade(rs.getString("grade"));stu.setPhone(rs.getLong("phone"));stu.setEmail(rs.getString("email"));stu.setAddress(rs.getString("address"));}} catch (SQLException e) {e.printStackTrace();} finally {this.closeAll();}return stu;}@SuppressWarnings("resource")@Overridepublic List<Student> getAllStu() {String sql = "select * from student";Object obj = this.excute(sql, null);ResultSet rs = (ResultSet) obj;list = new ArrayList<Student>();try {while (rs.next()) {stu = new Student();stu.setId(rs.getInt("id"));stu.setName(rs.getString("name"));stu.setAge(rs.getInt("age"));stu.setGender(rs.getString("gender"));stu.setGrade(rs.getString("grade"));stu.setPhone(rs.getLong("phone"));stu.setEmail(rs.getString("email"));stu.setAddress(rs.getString("address"));list.add(stu);}} catch (SQLException e) {e.printStackTrace();} finally {this.closeAll();}return list;}@SuppressWarnings("resource")@Overridepublic String getNameById(int id) {String name = null;String sql = "select name from student where id=?";Object[] param = { id };Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try {while (rs.next()) {name = rs.getString("name");}} catch (SQLException e) {e.printStackTrace();} finally {this.closeAll();}return name;}@SuppressWarnings("resource")@Overridepublic int getidByIntput(int id) {int num = 0;String sql = "select id from student where id=?";Object[] param = { id };Object obj = this.excute(sql, param);ResultSet rs = (ResultSet) obj;try {while (rs.next()) {num = rs.getInt("id");}} catch (SQLException e) {e.printStackTrace();} finally {this.closeAll();}return num;}@Overridepublic boolean addStudent(Object[] param) {boolean b = false;String sql = "insert into student values(?,?,?,?,?,?,?,?)";Object obj = this.excute(sql, param);b = (boolean) obj;return b;}@Overridepublic boolean removeStuById(int id) {boolean b = false;String sql = "delete from student where id=?";Object[] param = { id };Object obj = this.excute(sql, param);b = (boolean) obj;return b;}@Overridepublic boolean modifyAllStuById(Student stu) {boolean b = false;String sql = "update student set age = ?,grade=?,address=?,phone=?,email=? where id = ?";Object[] param = { stu.getAge(), stu.getGrade(), stu.getAddress(),stu.getPhone(), stu.getEmail(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;return b;}@Overridepublic boolean modifyPartStuById(Student stu, String attr) { boolean b = false;if (attr.equals("age")) {String sql = "update student set age =? where id=?";Object[] param = { stu.getAge(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;} else if (attr.equals("grade")) {String sql = "update student set grade =? where id=?";Object[] param = { stu.getGrade(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;} else if (attr.equals("address")) {String sql = "update student set address =? where id=?";Object[] param = { stu.getAddress(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;} else if (attr.equals("phone")) {String sql = "update student set phone =? where id=?";Object[] param = { stu.getPhone(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;} else if (attr.equals("email")) {String sql = "update student set email =? where id=?";Object[] param = { stu.getEmail(), stu.getId() };Object obj = this.excute(sql, param);b = (boolean) obj;}return b;}}好吧,到此为止,逻辑算是完成了,接下来就是工具包,也就是JDBC通式public class DBHelper {private static final String url= "jdbc:mysql://localhost:3306/sms?characterEncoding=utf-8";private static final String Driver = "com.mysql.jdbc.Driver";private static final String name = "root";private static final String pwd = "sa123456";private Connection conn = null;private PreparedStatement pstmt = null;private ResultSet rs = null;/*** 创建数据库连接** @returnpublic Connection Getconn() {try {Class.forName(Driver);conn = DriverManager.getConnection(url, name, pwd);} catch (ClassNotFoundException e) {System.out.println("注册驱动失败");} catch (SQLException e) {System.out.println("驱动包路径错误");}return conn;}public Object excute(String sql, Object[] param) { int a = 0;Object o = null;this.Getconn();try {pstmt = conn.prepareStatement(sql);if (param != null) {for (int i = 0; i < param.length; i++) {pstmt.setObject(i + 1, param[i]);}}boolean b = pstmt.execute();if (b) {rs = pstmt.getResultSet();o = rs;} else {a = pstmt.getUpdateCount();if (a > 0) {o = true;} else {o = false;}closeAll();}} catch (SQLException e) {e.printStackTrace();}return o;}* 关闭数据库*/public void closeAll() {try {if (rs != null) {rs.close();}if (pstmt != null) {pstmt.close();}if (conn != null) {conn.close();}} catch (SQLException e) {System.out.println("错误关闭");}}}至于这个类,是一些控制台输入信息判断,当然可以贴出来供大家参考~/*** 匹配信息** @author Administrator**/public class Matches {Scanner input = new Scanner(System.in);static String id = null;static String gender = null;static String age = null;static String grade = null;static String phone = null;static String email = null;/*** 匹配id** @return*/public String matchesId() {id = input.next();if (Pattern.matches("^[0-9]{1,}$", id)) {} else {System.out.println("输入错误,只能输入数字:");this.matchesId();}return id;}/*** 匹配性别** @return*/public String matchesGender() {gender = input.next();if (!(gender.equals("男") || gender.equals("女"))) { System.out.println("性别只能是男或者女:");this.matchesGender();}return gender;}/*** 匹配年龄** @return*/public int matchesAge() {age = input.next();if (!Pattern.matches("^[0-9]{1,}$", age)) {System.out.println("以上输入不合法,只能输入1-120之内的数字:");this.matchesAge();} else if(Integer.valueOf(age) < 1 || Integer.valueOf(age) > 120) {System.out.println("以上输入不合法,只能输入1-120之内的数字:");this.matchesAge();}return Integer.parseInt(age);}* 匹配年级** @return*/public String matchesGrade() {grade = input.next();if(!(grade.equals("初级") || grade.equals("中级") || grade.equals("高级"))) {System.out.println("无此年级设置,年级只能输入初级、中级或高级,请重新输入:");this.matchesGrade();}return grade;}/*** 匹配手机号** @return*/public long matchesPhone() {phone = input.next();if (!Pattern.matches("^[0-9]{11}$", phone)) {System.out.println("输入有误,电话号码只能是11位数字,请重新输入:");this.matchesPhone();}return Long.parseLong(phone);}/*** 匹配email** @return*/public String matchesEmail() {email = input.next();if(!Pattern.matches("^[0-9a-zA-Z]+@[0-9a-zA-Z]+.[0-9a-zA-Z]+$", email)) {System.out.println("邮箱格式有误,请输入正确的电子邮箱(包含@和.com)");this.matchesEmail();return email;}}好了,别的我就不说了,怎么调用,我更就不用说了吧?本文为原创作品,转载需注明出处。
Java连接常见数据库代码
Java连接常见数据库代码1.连接SQL server 2005数据库public class JDBCConnection {/*** DRIVER 数据库驱动* URL 数据库地址* USER_NAME 数据库⽤户名* PASSWORD 数据库登录密码*/private static final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";private static final String URL="jdbc:sqlserver://localhost:1433;DatabaseName=LibraryManagement";private static final String USER_NAME="sa";private static final String PASSWORD="123456";private static Connection conn;private static final ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>();//通过静态代码块加载JDBC驱动static{try{Class.forName(DRIVER).newInstance();}catch(ClassNotFoundException e){e.printStackTrace();}catch(Exception e){e.printStackTrace();}}/*** 功能:建⽴与数据库的连接* @return Connection的实例*@throws ClassNotFound,SQLException*/public static Connection getConnection(){//从线程中获得数据库连接conn=threadLocal.get();if(conn==null){try{conn=DriverManager.getConnection(URL,USER_NAME,PASSWORD);//将数据库连接保存到线程中threadLocal.set(conn);}catch(SQLException e){e.printStackTrace();}}return conn;}}2.连接MySQL数据库public Connection getConnection() throws ClassNotFoundException {String url = "jdbc:mysql://localhost:3306/mesdb";String name = "root";String passw = "123456";Class.forName("com.mysql.jdbc.Driver");try {Connection conn=DriverManager.getConnection(url,name,passw);return conn;} catch (Exception e) {e.printStackTrace();return null;}}3.连接Oracle数据库public OracleJDBC {public Connection getConnection() throws ClassNotFoundException {String url = "jdbc:oracle:thin:@192.168.102.243:1521:orcl";String name = "training"; String passw = "123456";Class.forName("oracle.jdbc.driver.OracleDriver");try {Connection conn =DriverManager.getConnection(url,name,passw); return conn;} catch (Exception e){e.printStackTrace();return null;}}。
java利用Apachecommonscodec进行MD5加密,BASE64加密解密,执行系统命令
好了 ,运行一下看看最终结果
这些只是Apache commons 包的基本功能,其它功能大家可以到这里下载 详细研究
/** * Md5加密 * @param str * @return */ public static String Md5encode(String str) { return DigestUtils.md5Hex(str); }
/** * Base64加密 * @param str * @return */ public static String Base64encode(String str) { byte[] b = Base64.encodeBase64(str.getBytes(), true); return new String(b); } /** * Base64解密 * @param str * @return */ public static String Base64decode(String str) { byte[] b = Base64.decodeBase64(str.getBytes()); return new String(b); }
这篇文章主要介绍了通过openpyxl读取excel文件过程解析文中通过示例代码介绍的非常详细对大家的学习或者工作具有一定的参考学习价值需要的朋友可以参考下
java jdbc的用法
java jdbc的用法Java JDBC的用法一、介绍在Java中,JDBC(Java Database Connectivity)是一种用于连接数据库的API。
它提供了一组类和接口,用于与关系型数据库进行交互。
使用JDBC,开发人员可以执行诸如查询、插入、更新和删除等数据库操作。
二、步骤以下是使用Java JDBC的一般步骤:步骤一:加载数据库驱动首先,我们需要加载适当的数据库驱动程序。
不同的数据库有不同的驱动程序,我们需要根据我们要连接的数据库类型加载相关的驱动程序。
例如,如果我们要连接MySQL数据库,则需要加载MySQL的JDBC驱动程序。
加载驱动程序的方法是通过使用Java的Class.forName()方法来实现的。
下面是一个加载MySQL驱动程序的示例代码:javaClass.forName("com.mysql.jdbc.Driver");步骤二:建立数据库连接一旦我们加载了适当的数据库驱动程序,接下来,我们需要建立与数据库的连接。
要建立连接,我们需要提供数据库的URL、用户名和密码。
下面是一个建立与MySQL数据库的连接的示例代码:javaString url = "jdbc:mysql:localhost:3306/mydb";String username = "root";String password = "password";Connection connection = DriverManager.getConnection(url, username, password);步骤三:创建Statement对象一旦我们建立了与数据库的连接,我们需要创建一个Statement对象。
Statement对象用于执行SQL语句,并返回结果。
创建Statement对象的方法是通过使用Connection对象的createStatement()方法来实现的。
java策略模式代码
java策略模式代码策略模式是一种行为设计模式,它允许你在运行时改变对象的行为。
下面是一个使用Java实现的简单策略模式示例:java复制代码// 定义策略接口public interface Strategy {void execute();}// 具体策略类1public class ConcreteStrategyA implements Strategy {@Overridepublic void execute() {System.out.println("执行策略A");}}// 具体策略类2public class ConcreteStrategyB implements Strategy {@Overridepublic void execute() {System.out.println("执行策略B");}}// 上下文类,持有策略对象public class Context {private Strategy strategy;public Context(Strategy strategy) {this.strategy = strategy;}public void setStrategy(Strategy strategy) {this.strategy = strategy;}public void executeStrategy() {strategy.execute();}}// 使用示例:public class Main {public static void main(String[] args) {Context context = new Context(new ConcreteStrategyA()); // 设置策略为策略Acontext.executeStrategy(); // 执行策略,输出 "执行策略A"context.setStrategy(new ConcreteStrategyB()); // 更改策略为策略B context.executeStrategy(); // 执行策略,输出 "执行策略B"}}在这个例子中,我们定义了一个Strategy接口,它有一个execute方法。
jave-all-deps 例子
jave-all-deps 例子以下是一个简单的例子,使用 Maven 来构建和运行一个具有所有依赖项的 Java 项目。
首先,打开一个终端窗口,进入项目根目录。
然后,创建一个 Maven 项目:```mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false```该命令将生成一个名为 "my-app" 的 Maven 项目,并使用默认的 Maven 快速启动骨架。
进入 "my-app" 目录:```cd my-app```编辑 "pom.xml" 文件,将以下代码添加到 `<dependencies>` 标签中:```xml<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency>```保存并关闭文件。
构建项目:```mvn clean install```该命令将下载所有依赖项并构建项目。
运行项目:```java -cp target/my-app-1.0-SNAPSHOT.jar com.example.App ```该命令将运行一个名为 "App" 的 Java 类,并输出 "Hello World!"。
这就是一个展示如何使用 Maven 来构建和运行带有所有依赖项的 Java 项目的简单例子。
请注意,实际项目的依赖项可能会有所不同,具体取决于您的项目需求。
java数据库链接JDBC入门基础
JDBC:通过jdbc把java代码和DB链接起来要是使用JDBC链接数据库,就必须导入数据库相对应的驱动包 ojdbc.jarDriverManager : 管理JDBC驱动服务Connection :与特定数据库的连接(会话)。
(链接数据库)Statement :用于执行静态 SQL 语句并返回它所生成结果的对象ResultSet :结果集(表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
)PreparedStatement:表示预编译的 SQL 语句的对象(执行sql)public static Connection getConnection(String url,String user,String password)throws SQLExceptionurl:代表链接数据库,(每个数据库链接是不一样的)user:用户名password:密码1)加载驱动类Class.forName(String str);2)链接数据库public static Connection getConnection(String url,String user,String password)throws SQLExceptionpublic static final String DRIVER = "oracle.jdbc.driver.OracleDriver";//orcale驱动public static final String URL = "jdbc:oracle:thin:@localhost:1521:XE";//数据库的urlpublic static final String USER = "system";//用户名public static final String PASSWORLD= "gqk";//密码1 JDBC概述JDBC是Java语言访问数据库的解决方案,也就是说,只要应用使用数据库存储数据,都会使用到JDBC编程。
java中jdbc源码解读
在commysqlcjjdbcconnectionimpl类实现了javasqlconnection接口这也是在开发中要加载驱动的原因其源码27000行能不能看懂就是你的功力了
java中 jdbc源码解读
在jdbc中一个重要的接口类就是java.sql.Driver,其中有一个重要的方法:Connection connect(String url, java.util.Propeties info);从这个 方法可以看到,Driver类的作用就是返回一个connection。
在springboot2.0中又加入了DataSourceBuilder类,配置数据库连接池,真的是能为程序员做,就是要获取一个Connection,有了Connection,就可以通信了,这就是开发者关心的,其实现细节不需要了解, //DataSource的意义就在这里 }
在com.mysql.cj.jdbc.ConnectionImpl类,实现了java.sql.Connection接口,这也是在开发中要加载驱动的原因,其源码27000行,能不 能看懂就是你的功力了。在java.sql.DriverManager中看到了Class.forName()函数的调用,说明了在加载sql相关的类。
public class Driver extends NonRegisteringDriver implements java.sql.Driver { // // Register ourselves with the DriverManager // static { try { java.sql.DriverManager.registerDriver(new Driver()); } catch (SQLException E) { throw new RuntimeException("Can't register driver!"); } } public Driver() throws SQLException { // Required for Class.forName().newInstance() }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
package com.deo.javabean;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBAccess {
private String drv ="com.mysql.jdbc.Driver";//数据库驱动名private String url ="jdbc:mysql://localhost:3306/deo";
private String usr ="root";
private String pwd ="";
private Connection conn =null;
private Statement stm =null;
private ResultSet rs =null;
public String getDrv() {
return drv;
}
public void setDrv(String drv) {
this.drv = drv;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsr() {
return usr;
}
public void setUsr(String usr) {
r = usr;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
public Statement getStm() {
return stm;
}
public void setStm(Statement stm) {
this.stm = stm;
}
public ResultSet getRs() {
return rs;
}
public void setRs(ResultSet rs) {
this.rs = rs;
}
public boolean createConn(){
boolean b =false;
try{
Class.forName(drv).newInstance();//在取得连接之前,要注册驱动程序,
//用该方法,显示的加载驱动程序类
conn=DriverManager.getConnection(url, usr, pwd);
b=true;
}catch(SQLException e){
}catch(ClassNotFoundException e){
}catch(InstantiationException e){
}catch(IllegalAccessException e){
}
return b;
}
public boolean update(String sql){
boolean b =false;
try{
stm = conn.createStatement();
stm.execute(sql);
b=true;
}catch(Exception e){}
return b;
}
public void query(String sql){
try{
stm=conn.createStatement();
rs=stm.executeQuery(sql);
}catch(Exception e){}
}
public boolean next(){
boolean b = false;
try{
if(rs.next())
b =true;
}catch (Exception e){}
return b;
}
public String getValue(String field){ String value = null;
try{
if(rs!=null)value=rs.getString(field); }catch(Exception e){}
return value;
}
public void closeRs(){
try{
if(rs!=null)
rs.close();
}catch(Exception e){}
}
public void closeStm(){
try{
if(stm!=null)
stm.close();
}catch(Exception e){}
}
public void closeConn(){ try{
if(conn!=null)
conn.close();
}catch(Exception e){} }
}。