今天写了一个从properties文件里读取mysql的驱动,然后去连接mysql的例子程序...如下:
用到的properties文件,JdbcDemo.properties:
读取properties文件的类,Configuration.java:
运行类,JdbcMysqlDemo.java:
遇到的问题是:password为空的时候,没法从properties文件里传进去,我没有改root的密码...郁闷中....???
解决mysql中插入中文显示乱码的问题:
在启动服务器和客户端的时候,必须就设定好中文环境,这样就不会有乱码...否则,重新创建数据库吧,木办法...
用到的properties文件,JdbcDemo.properties:
driver=com.mysql.jdbc.Driver user=root connection=jdbc:mysql://localhost/students |
package cn.zhd; import java.util.Properties; import java.io.*; import org.apache.log4j.*; public class Configuration { /** * @Configuration用来解析properties文件 */ private Properties props; private FileInputStream ips; Logger log=Logger.getLogger(Configuration.class); public Configuration(){ props=new Properties(); } public Configuration(String filepath){ props=new Properties(); try{ ips=new FileInputStream(filepath); props.load(ips); ips.close(); }catch(FileNotFoundException e){ log.info("文件不存在"); e.printStackTrace(); }catch(IOException e){ log.info("装载文件失败"); e.printStackTrace(); } } public String getValue(String key){ if(props.containsKey(key)){ String value=props.getProperty(key); return value; } else return ""; } public String getValue(String fileName,String key){ try{ String value=null; ips=new FileInputStream(fileName); props.load(ips); ips.close(); if(props.containsKey(key)){ value=props.getProperty(key); return value; }else return value; }catch (FileNotFoundException e){ e.printStackTrace(); return ""; } catch (IOException e) { e.printStackTrace(); return ""; } catch (Exception ex) { ex.printStackTrace(); return ""; } } public void clear(){ props.clear(); } } |
package cn.zhd; import cn.zhd.Configuration; import java.util.Properties; import java.io.*; import org.apache.log4j.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.sql.ResultSet; public class JdbcMysqlDemo { /** * @与Mysql的交互 * 这样是不是很麻烦?我想插入数据的话,很麻烦...用设计模式设计设计吧....西西... */ public static void main(String[] args) { /* Logger log=Logger.getLogger(JdbcMysqlDemo.class); SimpleLayout layout=new SimpleLayout(); ConsoleAppender appender = new ConsoleAppender(layout); log.addAppender(appender); */ try{ // DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Configuration cfg=new Configuration(".//JdbcDemo.properties"); String className=cfg.getValue("driver"); String userName=cfg.getValue("user"); // String passName=cfg.getValue("password"); String conName=cfg.getValue("connection"); Class.forName(className); Connection mysqlcon=DriverManager.getConnection(conName,userName,""); Statement stat=mysqlcon.createStatement(); // stat.executeUpdate("delete from student where id=2 or id=3"); stat.executeUpdate("insert into student values(2,'张三')"); stat.executeUpdate("insert into student values(3,'lisi')"); ResultSet rs=stat.executeQuery("select * from student order by id"); while (rs.next()){ // log.info(rs.getString(1)+":"+rs.getString(2)); System.out.println(rs.getString(1)+":"+rs.getString(2)); } }catch(SQLException e){ e.printStackTrace(); }catch(ClassNotFoundException e){ e.printStackTrace(); } } } |
解决mysql中插入中文显示乱码的问题:
在启动服务器和客户端的时候,必须就设定好中文环境,这样就不会有乱码...否则,重新创建数据库吧,木办法...