TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
java在线考试系统SSH框架:9 H4 d) y1 M# D' [4 ?% C* Q; b/ S
模块:试题数据管理(添加考试类型、添加全部试题、添加试题); T. x3 Q! h, j* ?8 X3 H- } W1 G
考生数据管理(浏览全部考生、添加考生数据)
1 s; l" u; q% ]6 A数据表:admin examtype question student. u' P7 W$ j4 x# x
6 T2 j7 o( e) u0 j6 K9 W
appContext.xml数据库配置:
0 r& g, {" A* i5 b5 b4 `- <!-- 定义数据源Bean,使用C3P0数据源实现 -->
. x I; i2 p5 Q$ \: N0 e - <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">* @/ G: F5 n9 k) @+ S% k
- <!-- 指定连接数据库的驱动 --># ?+ U+ m0 |) t$ x+ L& E% \
- <property name="driverClass" value="com.mysql.jdbc.Driver"/>
* L, o) G, B' h8 F5 x" w - <!-- 指定连接数据库的URL -->
: s' S2 \0 y4 F% f8 x9 V! o' a3 c - <property name="jdbcUrl" value="jdbc:mysql://localhost/onlinexam"/>$ y/ e' r: h- V7 @
- <!-- 指定连接数据库的用户名 -->3 |! b7 M2 z7 ?6 v" q, Y- ~0 n( g" c
- <property name="user" value="root"/>' S! b$ ?" ?) l+ r4 k/ N) L4 w
- <!-- 指定连接数据库的密码 -->2 I! M& t# s- J3 {) c. ?
- <property name="password" value="root"/>/ V$ w; w" b5 V7 l
- <!-- 指定连接数据库连接池的最大连接数 -->0 j8 ^+ q$ }& ]& s. P" ?4 g
- <property name="maxPoolSize" value="40"/>
) x4 H' x! u0 c5 T' x8 s - <!-- 指定连接数据库连接池的最小连接数 -->
9 y- N4 D& [, |% W6 J - <property name="minPoolSize" value="1"/>
- E `8 @% J+ x3 U b4 r# _# k - <!-- 指定连接数据库连接池的初始化连接数 -->& `# Q( a3 p, d1 R3 H7 u- Q
- <property name="initialPoolSize" value="1"/>
. }% c# h3 ]) g - <!-- 指定连接数据库连接池的连接的最大空闲时间 --># z) }6 U% }# ^
- <property name="maxIdleTime" value="20"/>
6 u1 i( V* ~; j7 f% g - </bean>
# l" `" Z8 H; p8 x! k6 t - - q1 {, k* s; c C* \
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">6 m0 X: B. k! a# T; U
- <property name="dataSource" ref="dataSource"/>
O8 D) C6 w) o, q# \! Y - <property name="mappingResources">* |1 q; Z0 q) r5 E% j
- <list>. F3 Z: F! G2 L8 l7 C( Q
- <value>org/matrix/conf/ExamType.hbm.xml</value>8 f2 H: [: e, W4 v$ q. {3 }' C; T7 F
- <value>org/matrix/conf/Admin.hbm.xml</value>: h2 v1 |, h: G4 J. b1 d
- <value>org/matrix/conf/Question.hbm.xml</value>
( [- g0 w& g; v. ] - <value>org/matrix/conf/Student.hbm.xml</value>. m" }( Z5 V4 ~: Q
- </list>
9 ~; i8 m& t! j6 e. y: W8 F# l3 R - </property>3 f9 @; L+ P0 g( p8 y$ l
- <property name="hibernateProperties"> W9 Z- b. x5 m" {9 \- I
- <props>
" L9 `. z4 i. d4 J: D* S. ? - <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>0 W0 m+ H0 u+ |" d: G) Q* o+ X5 l
- <prop key="show_sql">true</prop>
, j, _; d) E# a4 N" ], p - <prop key="hibernate.hbm2ddl.auto">update</prop>
- N% R. T# \1 |$ v5 r - <prop key="hibernate.jdbc.batch_size">20</prop>
( ^( }* Y; s' I" [- o! q" W - </props>" I4 U( t: {& V
- </property>; |. a& E _3 b
- </bean>- A0 ^& K$ W0 b* J: I# J: \
- ( [+ K+ y t* L# M" t, {0 t0 e$ t
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">% w: e& H& |& b* z: [: ^0 Z
- <property name="sessionFactory" ref="sessionFactory"/>
/ r. x' o3 @6 I S: ^ - </bean>- J9 r; Y; d) C4 }0 x) ]6 y
- 4 L! O: T" V" s2 B& h" `
- <bean id="transactionInterceptor": j: M* Z x3 T% I9 U/ M
- class="org.springframework.transaction.interceptor.TransactionInterceptor">( s* n3 R+ I- g0 q2 J: K' Y$ O
- <!-- 事务拦截器bean需要依赖注入一个事务管理器 -->8 `, w1 o- x4 o c7 o q
- <property name="transactionManager" ref="transactionManager"/>
$ q6 |: n8 R, x# C6 a - <property name="transactionAttributes">
0 r8 \3 y4 _) [. c; k2 G6 j - <!-- 下面定义事务传播属性 -->
2 {5 y. m$ X" y/ s6 H - <props>( A: @4 w, s% V m
- <prop key="insert*">PROPAGATION_REQUIRED</prop>+ u8 `, y( c5 A. q6 y5 i& n7 v6 W: T
- <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
& [: f. ]3 S" v% @* j7 |4 F C M4 ~" Z8 h - <prop key="*">PROPAGATION_REQUIRED</prop>
8 y" r! ]0 V0 ?' U D$ O - </props>
9 ^: I# ^2 l9 J2 X - </property>; h. _% X1 l( H1 t& `
- </bean>5 Z* A* u: f% o8 ]# ^' D
* e: l! C! u9 S0 U- <!-- 定义业务逻辑处理组件 -->
1 S+ J& h) {5 R - <bean id="examService" class="org.matrix.service.impl.ExamServiceImpl">3 \( Q, t ]! t! A( w$ h1 X
- <property name="adminDao" ref="AdminDao"/>
) V: W7 a3 N! Q& d% E3 n, s. N7 w - <property name="studentDao" ref="StudentDao"/>$ r/ ^, R$ L9 R* \
- <property name="examTypeDao" ref="ExamTypeDao"/>
4 H8 P4 z/ b' N( d! Q7 G - <property name="questionDao" ref="QuestionDao"/>
# t- y' |. ~2 J5 C - </bean>
7 k9 s" i0 ^9 B! j) k, G) D - 7 ^! ~8 U- B# W/ E
- <!-- 定义BeanNameAutoProxyCreator -->( }4 X2 n* {9 I2 [. \4 p( R& m
- <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
) A" L& a3 [9 S& X9 v - <!-- 指定对满足哪些Bean name的Bean自动生成业务代理 -->
6 E: a) _: X$ L5 X% B - <property name="beanNames">
6 b l, O4 K2 G8 r. w$ m3 D4 @ - <!-- 下面是所有需要自动创建事务代理的Bean-->- c! b% t) v2 M) Q2 u: O- W Q# o% D
- <list>2 b. B9 k! @' b4 [2 i) ]! N
- <value>examService</value>
" V0 l6 e/ u% x ? - </list>
) p7 h! [& x. w7 D) t, F } - <!-- 此处可增加其他需要自动创建事务代理的Bean-->
+ U6 P1 D9 c1 C9 o7 h - </property>/ y r0 v4 ?# g+ ^8 Y- {; s9 h
- <!-- 下面定义BeanNameAutoProxyCreator所需的事务拦截器-->' x3 B8 I8 B' Y) O% k
- <property name="interceptorNames">6 \* k! S t0 ]/ q' V/ n E
- <list>
) v- F& ]8 t& B/ c2 E$ s - <value>transactionInterceptor</value>8 L5 I$ c( F8 y' g" _& Z' d
- <!-- 此处可增加其他新的Interceptor -->8 ]( t2 R3 J2 \1 I: l9 L
- </list>0 O) h' O3 X9 E# g
- </property>
1 I& R X; r6 g7 x* i2 N/ U; Q - </bean>
复制代码 7 C1 Y$ U5 q+ k7 G7 O7 O' I
# {- g) ^& e% g5 L* F3 H9 \# O
4 k" n- C Z* s8 ~: v
2 K, k' _) X* R$ a8 `8 `
. u( c2 K$ {0 u% \ E% I项目源码下载地址:
6 d! N. r! M" l- h5 {
" T5 Z0 `9 g+ T. m+ s
! d* X% ~$ h' U" n! S9 J; D' x1 G; z& t& p6 B6 @/ H. N2 l
; |4 M4 v- ], b9 H/ s+ [- N8 p! ]% b2 Y
! w7 u3 T) d. K& }* |+ @% O r# M |
|