Hibernate逍遥游记-第1章-JDBC访问数据库
1.
- package mypack;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.table.*;
- import java.util.*;
- public class MonkeyGui implements ActionListener{
- private BusinessService businessService=new BusinessService();
- //界面的主要窗体组件
- protected JFrame frame;
- protected Container contentPane;
- //主面板上的组件
- protected JPanel custPan=new JPanel();
- protected JLabel nameLb=new JLabel("猴子姓名");
- protected JLabel genderLb=new JLabel("性别");
- protected JLabel ageLb=new JLabel("年龄");
- protected JLabel logLb=new JLabel("");
- protected JTextField nameTf=new JTextField(25);
- protected JTextField genderTf=new JTextField(25);
- protected JTextField ageTf=new JTextField(25);
- protected JButton addBt=new JButton("保存");
- /** 构造方法 */
- public MonkeyGui(){
- buildDisplay();
- }
- /** 创建图形界面 */
- private void buildDisplay(){
- frame=new JFrame("花果山信息管理系统");
- buildCustPanel();
- //向主窗体中加入custPan面板
- contentPane=frame.getContentPane();
- contentPane.setLayout(new BorderLayout());
- contentPane.add(custPan,BorderLayout.CENTER);
- frame.pack();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- /** 创建custPan面板 */
- private void buildCustPanel(){
- custPan.setLayout(new GridLayout(4,2,5,5));
- custPan.add(nameLb);
- custPan.add(nameTf);
- custPan.add(genderLb);
- custPan.add(genderTf);
- custPan.add(ageLb);
- custPan.add(ageTf);
- custPan.add(addBt);
- custPan.add(logLb);
- addBt.addActionListener(this);
- }
- public void actionPerformed(ActionEvent event){
- try{
- Monkey monkey=new Monkey();
- monkey.setName(nameTf.getText().trim());
- monkey.setAge(Integer.parseInt(ageTf.getText().trim()));
- monkey.setGender(genderTf.getText().trim().charAt(0));
- businessService.saveMonkey(monkey);
- logLb.setText("猴子信息已经保存成功。");
- }catch(Exception e){
- logLb.setText("猴子信息保存失败。");
- e.printStackTrace();
- }
- }
- public static void main(String args[]){
- new MonkeyGui();
- }
- }
2.
- package mypack;
- import java.io.*;
- import java.util.*;
- import java.sql.*;
- public class BusinessService{
- private String dbUrl ="jdbc:mysql://localhost:3306/SAMPLEDB";
- private String dbUser="root";
- private String dbPwd="1234";
- static{
- try{
- Class.forName("com.mysql.jdbc.Driver");
- DriverManager.registerDriver(new com.mysql.jdbc.Driver());
- }catch(Exception e){throw new RuntimeException(e);}
- }
- /** 持久化一个Monkey对象 */
- public void saveMonkey(Monkey monkey){
- Connection con=null;
- try {
- //建立数据库连接
- con = java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd);
- //创建一个SQL声明
- Statement stmt = con.createStatement();
- //向MONKEYS表插入记录
- stmt.executeUpdate("insert into MONKEYS(NAME,AGE,GENDER) values( "
- +"'"+monkey.getName()+"',"
- +monkey.getAge()+","
- +"'"+monkey.getGender()+"')");
- stmt.close();
- }catch(Exception e) {
- throw new RuntimeException(e);
- } finally {
- try{
- if(con!=null)con.close();
- }catch(Exception e){e.printStackTrace();}
- }
- }
- }
3.
- package mypack;
- public class Monkey{
- private Long id;
- private String name;
- private int age;
- private char gender;
- public Monkey(){}
- public Long getId(){
- return id;
- }
- private void setId(Long id){
- this.id = id;
- }
- public String getName(){
- return name;
- }
- public void setName(String name){
- this.name=name;
- }
- public int getAge(){
- return age;
- }
- public void setAge(int age){
- this.age =age ;
- }
- public char getGender(){
- return gender;
- }
- public void setGender(char gender){
- this.gender =gender ;
- }
- }
4.
- drop database if exists SAMPLEDB;
- create database SAMPLEDB DEFAULT CHARACTER SET utf8;
- use SAMPLEDB;
- create table MONKEYS (
- ID bigint not null auto_increment primary key,
- NAME varchar(30) not null,
- AGE int,
- GENDER char(1)
- );
5.build.xml
- <?xml version="1.0"?>
- <project name="Learning Hibernate" default="prepare" basedir=".">
- <!-- Set up properties containing important project directories -->
- <property name="source.root" value="src"/>
- <property name="class.root" value="classes"/>
- <property name="lib.dir" value="lib"/>
- <!-- Set up the class path for compilation and execution -->
- <path id="project.class.path">
- <!-- Include our own classes, of course -->
- <pathelement location="${class.root}" />
- <!-- Include jars in the project library directory -->
- <fileset dir="${lib.dir}">
- <include name="*.jar"/>
- </fileset>
- </path>
- <!-- Create our runtime subdirectories and copy resources into them -->
- <target name="prepare" description="Sets up build structures">
- <delete dir="${class.root}"/>
- <mkdir dir="${class.root}"/>
- <!-- Copy our property files and O/R mappings for use at runtime -->
- <copy todir="${class.root}" >
- <fileset dir="${source.root}" >
- <include name="**/*.properties"/>
- <include name="**/*.hbm.xml"/>
- <include name="**/*.xml"/>
- </fileset>
- </copy>
- </target>
- <!-- Compile the java source of the project -->
- <target name="compile" depends="prepare"
- description="Compiles all Java classes">
- <javac srcdir="${source.root}"
- destdir="${class.root}"
- debug="on"
- optimize="off"
- deprecation="on">
- <classpath refid="project.class.path"/>
- </javac>
- </target>
- <target name="rungui" description="Run a Hibernate sample"
- depends="compile" >
- <java classname="mypack.MonkeyGui" fork="true">
- <classpath refid="project.class.path"/>
- </java>
- </target>
- </project>
6.在命令行中输入 ant rungui,会编译代码后运行MonkeyGui类的main()方法
7.
package mypack;
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.*;import java.util.*;
public class MonkeyGui implements ActionListener{ private BusinessService businessService=new BusinessService();
//界面的主要窗体组件 protected JFrame frame; protected Container contentPane;
//主面板上的组件 protected JPanel custPan=new JPanel(); protected JLabel nameLb=new JLabel("猴子姓名"); protected JLabel genderLb=new JLabel("性别"); protected JLabel ageLb=new JLabel("年龄"); protected JLabel logLb=new JLabel("");
protected JTextField nameTf=new JTextField(25); protected JTextField genderTf=new JTextField(25); protected JTextField ageTf=new JTextField(25); protected JButton addBt=new JButton("保存");
/** 构造方法 */ public MonkeyGui(){ buildDisplay(); } /** 创建图形界面 */ private void buildDisplay(){ frame=new JFrame("花果山信息管理系统"); buildCustPanel(); //向主窗体中加入custPan面板 contentPane=frame.getContentPane(); contentPane.setLayout(new BorderLayout()); contentPane.add(custPan,BorderLayout.CENTER); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);
} /** 创建custPan面板 */ private void buildCustPanel(){ custPan.setLayout(new GridLayout(4,2,5,5)); custPan.add(nameLb); custPan.add(nameTf); custPan.add(genderLb); custPan.add(genderTf); custPan.add(ageLb); custPan.add(ageTf);
custPan.add(addBt); custPan.add(logLb); addBt.addActionListener(this);
} public void actionPerformed(ActionEvent event){ try{ Monkey monkey=new Monkey(); monkey.setName(nameTf.getText().trim()); monkey.setAge(Integer.parseInt(ageTf.getText().trim())); monkey.setGender(genderTf.getText().trim().charAt(0)); businessService.saveMonkey(monkey); logLb.setText("猴子信息已经保存成功。"); }catch(Exception e){ logLb.setText("猴子信息保存失败。"); e.printStackTrace(); } } public static void main(String args[]){ new MonkeyGui(); } }
Hibernate逍遥游记-第1章-JDBC访问数据库的更多相关文章
- Hibernate逍遥游记-第15章处理并发问题-003乐观锁
1. 2. drop database if exists SAMPLEDB; create database SAMPLEDB; use SAMPLEDB; drop table if exists ...
- Hibernate逍遥游记-第15章处理并发问题-002悲观锁
1. 2. hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mys ...
- Hibernate逍遥游记-第12章 映射值类型集合-002映射Bag(<idbag><collection-id>)
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第12章 映射值类型集合-001映射set(<element>)
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第10章 映射继承关系-003继承关系树中的每个类对应一个表(joined-subclass)
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第10章 映射继承关系-002继承关系树中的根类对应一个表(discriminator、subclass)
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第9章 Hibernate的映射类型
1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
- Hibernate逍遥游记-第8章 映射组成关系(<component>、<parent>)
一. 1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...
随机推荐
- 跨域访问JSONP CORS
一.JSONP 常用的Jquery框架支持jsonp方式请求,该方式只支持GET方法,传参大小有限,而且需要后台根据jsonp的请求方式进行封装结果返回. 其中参数jsonp默认为callback,j ...
- 关于内存的5个函数(malloc,VirtualAlloc,GlobalAlloc,LocalAlloc,HeapAlloc)
VirtualAlloc 该函数的功能是在调用进程的虚地址空间,预定或者提交一部分页,如果用于内存分配的话,并且分配类型未指定MEM_RESET,则系统将自动设置为0 一次分配 1PAGE 以上的 R ...
- Hyper-V 虚拟机连接外部网络
Hyper-V创建好虚拟机之后,在默认配置下是没有网络连接的,这个时候就需要进行简单的配置,即可让虚拟机连接外部网络: 在Hyper-V管理器中,右键点击后出现菜单,选择"虚拟交换机管理器& ...
- 清理c盘垃圾(将一下代码复制到记事本然后把后缀名改为xxx.bat,然后双击,就ok了!!)
@echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._m ...
- gen-cpp/.deps/ChildService.Plo: No such file or directory
最近在编译 Thrift 的时候出现这种情况,我按照官方教程的要求,所有版本都是最新,但是还出现这种问题. ]: Entering directory `/home/yantze/dl/thrift/ ...
- asp.net 时间比较,常用于在某段时间进行操作
DateTime.Compare(t1,t2)比较两个日期大小,排前面的小,排在后面的大,比如:2011-2-1就小于2012-3-2返回值小于零: t1 小于 t2. 返回值等于零 : t1 等于 ...
- 纯JS焦点图特效(可一个页面多用)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ListView 复制到剪切板
private void 导出ToolStripMenuItem_Click(object sender, EventArgs e) { Clipboard.SetText(GetListView(l ...
- C# - write values to configuration file
using System.Configuration;System.Configuration.Configuration config = ConfigurationManager.OpenExeC ...
- Spark小课堂Week5 Scala初探
Spark小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式 ...